summaryrefslogtreecommitdiff
path: root/src/port/resource/type/TrackPathPointData.h
blob: 1337825ff97fb5abfcc2ebde4facde2c7ef0bdc1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#pragma once

#include "ship/resource/Resource.h"
#include <vector>
#include <libultra/gbi.h>
#include <waypoints.h>

namespace MK64 {
// Used for binary import from torch
class TrackPathPointData : public Ship::Resource<TrackPathPoint> {
  public:
    using Resource::Resource;

    TrackPathPointData();

    TrackPathPoint* GetPointer() override;
    size_t GetPointerSize() override;

    std::vector<TrackPathPoint> TrackPathPointList;
};

// Used for xml
class Paths : public Ship::Resource<TrackPathPoint> {
  public:
    using Resource::Resource;

    Paths();

    // This struct is really ugly... Sorry
    struct PathObject {
        std::vector<TrackPathPoint> PathList;
        int32_t PathIndex;
    };

    TrackPathPoint* GetPointer() override;
    size_t GetPointerSize() override;

    std::vector<PathObject> PathObject;
};

} // namespace MK64