mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2024-12-12 11:12:20 -05:00
5dda5762ba
subrepo: subdir: "ZAPDTR" merged: "a53a53ea4" upstream: origin: "https://github.com/HarbourMasters/ZAPDTR.git" branch: "master" commit: "a53a53ea4" git-subrepo: version: "0.4.1" origin: "???" commit: "???"
85 lines
1.7 KiB
C++
85 lines
1.7 KiB
C++
#pragma once
|
|
|
|
#include "tinyxml2.h"
|
|
|
|
#include <string>
|
|
#include <vector>
|
|
|
|
#include "ZFile.h"
|
|
#include "ZResource.h"
|
|
|
|
class ZRoom;
|
|
|
|
enum class RoomCommand : uint8_t
|
|
{
|
|
SetStartPositionList = 0x00,
|
|
SetActorList = 0x01,
|
|
SetCsCamera = 0x02,
|
|
SetCollisionHeader = 0x03,
|
|
SetRoomList = 0x04,
|
|
SetWind = 0x05,
|
|
SetEntranceList = 0x06,
|
|
SetSpecialObjects = 0x07,
|
|
SetRoomBehavior = 0x08,
|
|
Unused09 = 0x09,
|
|
SetMesh = 0x0A,
|
|
SetObjectList = 0x0B,
|
|
SetLightList = 0x0C,
|
|
SetPathways = 0x0D,
|
|
SetTransitionActorList = 0x0E,
|
|
SetLightingSettings = 0x0F,
|
|
SetTimeSettings = 0x10,
|
|
SetSkyboxSettings = 0x11,
|
|
SetSkyboxModifier = 0x12,
|
|
SetExitList = 0x13,
|
|
EndMarker = 0x14,
|
|
SetSoundSettings = 0x15,
|
|
SetEchoSettings = 0x16,
|
|
SetCutscenes = 0x17,
|
|
SetAlternateHeaders = 0x18,
|
|
SetCameraSettings = 0x19,
|
|
|
|
// MM Commands
|
|
SetWorldMapVisited = 0x19,
|
|
SetAnimatedMaterialList = 0x1A,
|
|
SetActorCutsceneList = 0x1B,
|
|
SetMinimapList = 0x1C,
|
|
Unused1D = 0x1D,
|
|
SetMinimapChests = 0x1E,
|
|
|
|
Error = 0xFF
|
|
};
|
|
|
|
class ZRoomCommand : public ZResource
|
|
{
|
|
public:
|
|
int32_t cmdAddress;
|
|
uint32_t cmdIndex;
|
|
uint32_t commandSet;
|
|
RoomCommand cmdID;
|
|
offset_t segmentOffset;
|
|
|
|
ZRoomCommand(ZFile* nParent);
|
|
virtual ~ZRoomCommand() = default;
|
|
|
|
virtual void ExtractCommandFromRoom(ZRoom* nZRoom, uint32_t nRawDataIndex);
|
|
|
|
void ParseRawData() override;
|
|
|
|
std::string GetSourceTypeName() const override;
|
|
ZResourceType GetResourceType() const override;
|
|
|
|
// Getters/Setters
|
|
virtual RoomCommand GetRoomCommand() const = 0;
|
|
size_t GetRawDataSize() const final override;
|
|
virtual std::string GetCommandCName() const;
|
|
|
|
virtual std::string GetCommandHex() const;
|
|
|
|
public:
|
|
ZRoom* zRoom;
|
|
|
|
uint8_t cmdArg1;
|
|
segptr_t cmdArg2;
|
|
};
|