summaryrefslogtreecommitdiff
path: root/ZAPD/ZRoom/Commands/SetCollisionHeader.cpp
blob: 5c086fb9e49cbe7ae02c1228b4a2e356d9c50b20 (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
41
42
43
44
45
#include "SetCollisionHeader.h"

#include "Globals.h"
#include "Utils/BitConverter.h"
#include <ship/utils/StringHelper.h>
#include "ZFile.h"
#include "ZRoom/ZRoom.h"

SetCollisionHeader::SetCollisionHeader(ZFile* nParent) : ZRoomCommand(nParent)
{
}

void SetCollisionHeader::ParseRawData()
{
	ZRoomCommand::ParseRawData();

	collisionHeader = new ZCollisionHeader(parent);
	collisionHeader->SetName(
		StringHelper::Sprintf("%sCollisionHeader_%06X", parent->GetName().c_str(), segmentOffset));
	collisionHeader->ExtractFromFile(segmentOffset);
	parent->AddResource(collisionHeader);
}

void SetCollisionHeader::DeclareReferences(const std::string& prefix)
{
	collisionHeader->DeclareVar(prefix, "");
}

std::string SetCollisionHeader::GetBodySourceCode() const
{
	std::string listName;
	Globals::Instance->GetSegmentedPtrName(cmdArg2, parent, "CollisionHeader", listName,
	                                       parent->workerID);
	return StringHelper::Sprintf("SCENE_CMD_COL_HEADER(%s)", listName.c_str());
}

std::string SetCollisionHeader::GetCommandCName() const
{
	return "SCmdColHeader";
}

RoomCommand SetCollisionHeader::GetRoomCommand() const
{
	return RoomCommand::SetCollisionHeader;
}