mirror of
https://github.com/OpenRCT2/OpenRCT2.git
synced 2026-05-06 07:56:46 -04:00
16cd1c07ff
Co-authored-by: Basssiiie <Basssiiie@users.noreply.github.com> Co-authored-by: Tulio Leao <tupaschoal@gmail.com>
76 lines
3.0 KiB
C++
76 lines
3.0 KiB
C++
/*****************************************************************************
|
|
* Copyright (c) 2022 OpenRCT2 developers
|
|
*
|
|
* For a complete list of all authors, please refer to contributors.md
|
|
* Interested in contributing? Visit https://github.com/OpenRCT2/OpenRCT2
|
|
*
|
|
* OpenRCT2 is licensed under the GNU General Public License version 3.
|
|
*****************************************************************************/
|
|
|
|
#pragma once
|
|
|
|
#ifdef ENABLE_SCRIPTING
|
|
|
|
#include "../../ScriptEngine.h"
|
|
|
|
#include <cstdint>
|
|
#include <string>
|
|
|
|
namespace OpenRCT2::TrackMetadata
|
|
{
|
|
enum class TrackElementFlag : uint8_t;
|
|
}
|
|
|
|
namespace OpenRCT2::Scripting
|
|
{
|
|
class ScTrackSegment;
|
|
extern ScTrackSegment gScTrackSegment;
|
|
|
|
class ScTrackSegment final : public ScBase
|
|
{
|
|
private:
|
|
struct TrackSegmentData
|
|
{
|
|
TrackElemType _type;
|
|
};
|
|
|
|
public:
|
|
void Register(JSContext* ctx);
|
|
JSValue New(JSContext* ctx, TrackElemType type);
|
|
|
|
private:
|
|
static void Finalize(JSRuntime* rt, JSValue thisVal);
|
|
static TrackSegmentData* GetTrackSegmentData(JSValue thisVal);
|
|
|
|
static JSValue type_get(JSContext* ctx, JSValue thisVal);
|
|
static JSValue description_get(JSContext* ctx, JSValue thisVal);
|
|
static JSValue beginZ_get(JSContext* ctx, JSValue thisVal);
|
|
static JSValue beginDirection_get(JSContext* ctx, JSValue thisVal);
|
|
static JSValue beginSlope_get(JSContext* ctx, JSValue thisVal);
|
|
static JSValue beginBank_get(JSContext* ctx, JSValue thisVal);
|
|
static JSValue endX_get(JSContext* ctx, JSValue thisVal);
|
|
static JSValue endY_get(JSContext* ctx, JSValue thisVal);
|
|
static JSValue endZ_get(JSContext* ctx, JSValue thisVal);
|
|
static JSValue endDirection_get(JSContext* ctx, JSValue thisVal);
|
|
static JSValue endSlope_get(JSContext* ctx, JSValue thisVal);
|
|
static JSValue endBank_get(JSContext* ctx, JSValue thisVal);
|
|
static JSValue length_get(JSContext* ctx, JSValue thisVal);
|
|
static JSValue elements_get(JSContext* ctx, JSValue thisVal);
|
|
static JSValue getSubpositionLength(JSContext* ctx, JSValue thisVal, int argc, JSValue* argv);
|
|
static JSValue getSubpositions(JSContext* ctx, JSValue thisVal, int argc, JSValue* argv);
|
|
static JSValue nextCurveElement_get(JSContext* ctx, JSValue thisVal);
|
|
static JSValue previousCurveElement_get(JSContext* ctx, JSValue thisVal);
|
|
static JSValue getMirrorElement(JSContext* ctx, JSValue thisVal);
|
|
static JSValue getAlternativeElement(JSContext* ctx, JSValue thisVal);
|
|
static JSValue getPriceModifier(JSContext* ctx, JSValue thisVal);
|
|
static JSValue getTrackGroup(JSContext* ctx, JSValue thisVal);
|
|
template<TrackMetadata::TrackElementFlag flag>
|
|
static JSValue getTrackFlag(JSContext* ctx, JSValue thisVal);
|
|
static JSValue getTrackCurvature(JSContext* ctx, JSValue thisVal);
|
|
static JSValue getTrackPitchDirection(JSContext* ctx, JSValue thisVal);
|
|
};
|
|
|
|
} // namespace OpenRCT2::Scripting
|
|
|
|
#endif
|