1#pragma once
2
3#include <basis/seadTypes.h>
4#include <math/seadVector.h>
5
6#include "Library/LiveActor/LiveActor.h"
7
8namespace al {
9struct ActorInitInfo;
10class HitSensor;
11class SensorMsg;
12} // namespace al
13
14class GamaneBullet : public al::LiveActor {
15public:
16 GamaneBullet(const char* name, const al::LiveActor* parent);
17 void init(const al::ActorInitInfo& info) override;
18 void attackSensor(al::HitSensor* self, al::HitSensor* other) override;
19 bool receiveMsg(const al::SensorMsg* message, al::HitSensor* other,
20 al::HitSensor* self) override;
21 void appear() override;
22 void control() override;
23
24 void shoot(f32, const sead::Vector3f&);
25 void rotate(f32);
26
27 void exeStraight();
28 void exeBrake();
29 void exeFall();
30 void exeHit();
31
32 al::LiveActor* getParent() { return mParentActor; }
33
34private:
35 f32 _108;
36 al::LiveActor* mParentActor;
37};
38