mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2024-10-31 23:55:06 -04:00
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;
|
||
|
};
|