summaryrefslogtreecommitdiff
path: root/src/engine/registry/RegisterContent.h
blob: 4678c16a4acb0184bbab61b1fec787c8a7bbde46 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#pragma once

#include "Registry.h"
#include "DataRegistry.h"
#include "src/port/Game.h"
#include "engine/objects/Object.h"
#include "engine/Actor.h"
#include "engine/SpawnParams.h"

template<class T> static OObject* AddObjectToWorld(const SpawnParams& params) {
    return GetWorld()->AddObject(std::make_unique<T>(params));
}

template<class T> static AActor* AddActorToWorld(const SpawnParams& params) {
    return GetWorld()->AddActor(std::make_unique<T>(params));
}

void RegisterTracks(Registry<TrackInfo>& r);
void RegisterActors(Registry<ActorInfo, const SpawnParams&>& r);
void RegisterItems(Registry<ItemInfo>& r);
void RegisterItemTables(DataRegistry<RandomItemTable>& r);