summaryrefslogtreecommitdiff
path: root/src/port/resource/type/EnvSettings.h
blob: 6f50e7955c33de403204c0b4732effce38167e01 (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
#pragma once

#include "Limb.h"

#include <cstdint>
#include <Resource.h>

namespace SF64 {

struct EnvSettingsData {
    /* 0x00 */ int32_t type;
    /* 0x04 */ int32_t unk_04;
    /* 0x08 */ uint16_t bgColor;
    /* 0x0A */ uint16_t seqId;
    /* 0x0C */ int32_t fogR;
    /* 0x10 */ int32_t fogG;
    /* 0x14 */ int32_t fogB;
    /* 0x18 */ int32_t fogN;
    /* 0x1C */ int32_t fogF;
    /* 0x20 */ Vec3f unk_20;
    /* 0x2C */ int32_t lightR;
    /* 0x30 */ int32_t lightG;
    /* 0x34 */ int32_t lightB;
    /* 0x38 */ int32_t ambR;
    /* 0x3C */ int32_t ambG;
    /* 0x40 */ int32_t ambB;
};

class EnvSettings : public Ship::Resource<EnvSettingsData> {
  public:
    using Resource::Resource;

    EnvSettings() : Resource(std::shared_ptr<Ship::ResourceInitData>()) {}

    EnvSettingsData* GetPointer();
    size_t GetPointerSize();

    EnvSettingsData mSettings{};
};
}