summaryrefslogtreecommitdiff
path: root/include/Actor/ActorSpawner.hpp
blob: e99bafb354bf6efad91cbbc7e39e64274ec6f8e3 (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
#pragma once

#include <nds/math.h>

#include "global.h"
#include "types.h"

#include "Actor/Actor.hpp"
#include "Actor/ActorRef.hpp"
#include "Actor/ActorType.hpp"
#include "System/SysNew.hpp"

struct ActorSpawnOptions {
    /* 00 */ Actor_UnkStruct_020 mUnk_00;
    /* 14 */ s16 mAngle;
    /* 16 */ unk8 mUnk_16[0x2];
    /* 18 */ unk32 mUnk_18;
    /* 1c */ ActorRef mUnk_1c;
    /* 24 */ unk32 mUnk_24;
    /* 28 */ unk32 mUnk_28;
    /* 2c */
};

class ActorSpawner : public SysObject {
public:
    /* 0 (empty) */

    static ActorSpawner *Create();
    static void Destroy();
    ActorSpawner();
    ~ActorSpawner();
    void func_ov000_020c4014();
    void func_ov000_020c4018();
    Actor *CreateActor(ActorTypeId typeId);
    s32 Spawn(ActorTypeId type, Vec3p *pos, ActorSpawnOptions *param3, ActorRef *ref);
};

extern ActorSpawner *gActorSpawner;