summaryrefslogtreecommitdiff
path: root/src/factories/sf64/EnvSettingsFactory.cpp
diff options
context:
space:
mode:
authorpetrie911 <69443847+petrie911@users.noreply.github.com>2024-03-13 15:56:30 -0500
committerGitHub <noreply@github.com>2024-03-13 14:56:30 -0600
commit92e7076647d2da64e8f90aa66974c4a3dba03a06 (patch)
tree968573727b890d6b0cf74a6ae354fffd98999af0 /src/factories/sf64/EnvSettingsFactory.cpp
parent2338cab8df24d483a4a1eaf8bd23a997a4beffb8 (diff)
Add vector classes and SF64 colpoly factory. Also fix enum parsing (#39)
* 3D * and env * so much to fix
Diffstat (limited to 'src/factories/sf64/EnvSettingsFactory.cpp')
-rw-r--r--src/factories/sf64/EnvSettingsFactory.cpp15
1 files changed, 7 insertions, 8 deletions
diff --git a/src/factories/sf64/EnvSettingsFactory.cpp b/src/factories/sf64/EnvSettingsFactory.cpp
index 7fd6613..8ed654a 100644
--- a/src/factories/sf64/EnvSettingsFactory.cpp
+++ b/src/factories/sf64/EnvSettingsFactory.cpp
@@ -5,7 +5,7 @@
#include "utils/Decompressor.h"
#include "utils/TorchUtils.h"
-SF64::EnvSettingsData::EnvSettingsData(int32_t type, int32_t unk_04, uint16_t bgColor, uint16_t seqId, int32_t fogR, int32_t fogG, int32_t fogB, int32_t fogN, int32_t fogF, float unk_20x, float unk_20y, float unk_20z, int32_t lightR, int32_t lightG, int32_t lightB, int32_t ambR, int32_t ambG, int32_t ambB): mType(type), mUnk_04(unk_04), mBgColor(bgColor), mSeqId(seqId), mFogR(fogR), mFogG(fogG), mFogB(fogB), mFogN(fogN), mFogF(fogF), mUnk_20x(unk_20x), mUnk_20y(unk_20y), mUnk_20z(unk_20z), mLightR(lightR), mLightG(lightG), mLightB(lightB), mAmbR(ambR), mAmbG(ambG), mAmbB(ambB) {
+SF64::EnvSettingsData::EnvSettingsData(int32_t type, int32_t unk_04, uint16_t bgColor, uint16_t seqId, int32_t fogR, int32_t fogG, int32_t fogB, int32_t fogN, int32_t fogF, Vec3f unk_20, int32_t lightR, int32_t lightG, int32_t lightB, int32_t ambR, int32_t ambG, int32_t ambB): mType(type), mUnk_04(unk_04), mBgColor(bgColor), mSeqId(seqId), mFogR(fogR), mFogG(fogG), mFogB(fogB), mFogN(fogN), mFogF(fogF), mUnk_20(unk_20), mLightR(lightR), mLightG(lightG), mLightB(lightB), mAmbR(ambR), mAmbG(ambG), mAmbB(ambB) {
}
@@ -46,9 +46,7 @@ void SF64::EnvSettingsCodeExporter::Export(std::ostream &write, std::shared_ptr<
write << env->mFogB << ", ";
write << env->mFogN << ", ";
write << env->mFogF << ", ";
- write << "{" << env->mUnk_20x << ", ";
- write << env->mUnk_20y << ", ";
- write << env->mUnk_20z << "}, ";
+ write << env->mUnk_20 << ", ";
write << env->mLightR << ", ";
write << env->mLightG << ", ";
write << env->mLightB << ", ";
@@ -70,6 +68,7 @@ std::optional<std::shared_ptr<IParsedData>> SF64::EnvSettingsFactory::parse(std:
auto [_, segment] = Decompressor::AutoDecode(node, buffer, sizeof(SF64::EnvSettingsData));
LUS::BinaryReader reader(segment.data, segment.size);
reader.SetEndianness(LUS::Endianness::Big);
+ Vec3f unk_20;
int32_t type = reader.ReadInt32();
int32_t unk_04 = reader.ReadInt32();
uint16_t bgColor = reader.ReadUInt16();
@@ -79,9 +78,9 @@ std::optional<std::shared_ptr<IParsedData>> SF64::EnvSettingsFactory::parse(std:
int32_t fogB = reader.ReadInt32();
int32_t fogN = reader.ReadInt32();
int32_t fogF = reader.ReadInt32();
- float unk_20x = reader.ReadFloat();
- float unk_20y = reader.ReadFloat();
- float unk_20z = reader.ReadFloat();
+ unk_20.x = reader.ReadFloat();
+ unk_20.y = reader.ReadFloat();
+ unk_20.z = reader.ReadFloat();
int32_t lightR = reader.ReadInt32();
int32_t lightG = reader.ReadInt32();
int32_t lightB = reader.ReadInt32();
@@ -89,5 +88,5 @@ std::optional<std::shared_ptr<IParsedData>> SF64::EnvSettingsFactory::parse(std:
int32_t ambG = reader.ReadInt32();
int32_t ambB = reader.ReadInt32();
- return std::make_shared<SF64::EnvSettingsData>(type, unk_04, bgColor, seqId, fogR, fogG, fogB, fogN, fogF, unk_20x, unk_20y, unk_20z, lightR, lightG, lightB, ambR, ambG, ambB);
+ return std::make_shared<SF64::EnvSettingsData>(type, unk_04, bgColor, seqId, fogR, fogG, fogB, fogN, fogF, unk_20, lightR, lightG, lightB, ambR, ambG, ambB);
}