Torch
Loading...
Searching...
No Matches
OoTSceneCommandWriter.h
1#pragma once
2
3#include "OoTSceneFactory.h"
4#include "OoTSceneUtils.h"
5#include <set>
6
7namespace OoT {
8
9// Context passed through scene command serialization.
11 std::vector<uint8_t>& buffer;
12 const std::set<uint32_t>& knownAddrs;
13 const std::string& entryName;
14 const std::string& baseName;
15 const std::string& currentDir;
16 const std::string& assetType;
17 bool isAltHeader;
18 std::vector<PendingAltHeader>& pendingAltHeaders;
19};
20
22public:
23 SceneCommand Write(uint32_t w0, uint32_t w1, SceneWriteContext& ctx);
24
25private:
26 void WriteSetWind(LUS::BinaryWriter& w, uint32_t w0, uint32_t w1);
27 void WriteSetTimeSettings(LUS::BinaryWriter& w, uint32_t w1);
28 void WriteSetSkyboxModifier(LUS::BinaryWriter& w, uint32_t w1);
29 void WriteSetEchoSettings(LUS::BinaryWriter& w, uint32_t w1);
30 void WriteSetSoundSettings(LUS::BinaryWriter& w, uint8_t cmdArg1, uint32_t w1);
31 void WriteSetSkyboxSettings(LUS::BinaryWriter& w, uint8_t cmdArg1, uint32_t w1);
32 void WriteSetRoomBehavior(LUS::BinaryWriter& w, uint8_t cmdArg1, uint32_t cmdArg2);
33 void WriteSetCameraSettings(LUS::BinaryWriter& w, uint8_t cmdArg1, uint32_t cmdArg2);
34 void WriteSetSpecialObjects(LUS::BinaryWriter& w, uint8_t cmdArg1, uint32_t w1);
35 void WriteSetStartPositionList(LUS::BinaryWriter& w, uint8_t cmdArg1, uint32_t cmdArg2, SceneWriteContext& ctx);
36 void WriteSetActorList(LUS::BinaryWriter& w, uint8_t cmdArg1, uint32_t cmdArg2, SceneWriteContext& ctx);
37 void WriteSetTransitionActorList(LUS::BinaryWriter& w, uint8_t cmdArg1, uint32_t cmdArg2, SceneWriteContext& ctx);
38 void WriteSetEntranceList(LUS::BinaryWriter& w, uint32_t cmdArg2, SceneWriteContext& ctx);
39 void WriteSetObjectList(LUS::BinaryWriter& w, uint8_t cmdArg1, uint32_t cmdArg2, SceneWriteContext& ctx);
40 void WriteSetLightingSettings(LUS::BinaryWriter& w, uint8_t cmdArg1, uint32_t cmdArg2, SceneWriteContext& ctx);
41 void WriteSetLightList(LUS::BinaryWriter& w, uint8_t cmdArg1, uint32_t cmdArg2, SceneWriteContext& ctx);
42 void WriteSetExitList(LUS::BinaryWriter& w, uint32_t cmdArg2, SceneWriteContext& ctx);
43 void WriteSetRoomList(LUS::BinaryWriter& w, uint8_t cmdArg1, uint32_t cmdArg2, SceneWriteContext& ctx);
44 void WriteSetCollisionHeader(LUS::BinaryWriter& w, uint32_t cmdArg2);
45 void WriteSetMesh(LUS::BinaryWriter& w, uint32_t cmdArg2, SceneWriteContext& ctx);
46 void WriteSetCsCamera(LUS::BinaryWriter& w, uint8_t cmdArg1, uint32_t cmdArg2, SceneWriteContext& ctx);
47 void WriteSetPathways(LUS::BinaryWriter& w, uint32_t cmdArg2, SceneWriteContext& ctx);
48 void WriteSetCutscenes(LUS::BinaryWriter& w, uint32_t cmdArg2, SceneWriteContext& ctx);
49 void WriteSetAlternateHeaders(LUS::BinaryWriter& w, uint32_t cmdArg2, SceneWriteContext& ctx);
50
51 void CreateBackgroundCompanion(std::vector<uint8_t>& buffer, uint32_t source, const std::string& bgSymbol);
52 std::string ResolveGfxPointer(uint32_t ptr, const std::string& symbol);
53 std::string ResolveGfxWithAlias(uint32_t ptr, const std::string& symbol, const std::string& currentDir);
54 uint32_t GetNeighborSize(const std::set<uint32_t>& knownAddrs, uint32_t segAddr, uint32_t entrySize);
55};
56
57} // namespace OoT
Definition OoTSceneCommandWriter.h:21
Definition OoTSceneFactory.h:48
Definition OoTSceneCommandWriter.h:10