Skip to content

Commit cd8a11f

Browse files
committed
KameckBeamHolder at 88%
1 parent eda912e commit cd8a11f

3 files changed

Lines changed: 77 additions & 0 deletions

File tree

include/Game/Enemy/KameckBeamHolder.hpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
class KameckBeamEventListener;
88
class KameckBeam;
99
class KameckTurtle;
10+
class KameckFireBall;
1011

1112
class KameckBeamHolder : public DeriveActorGroup< KameckBeam > {
1213
public:
@@ -15,6 +16,13 @@ class KameckBeamHolder : public DeriveActorGroup< KameckBeam > {
1516
virtual ~KameckBeamHolder();
1617
};
1718

19+
class KameckFireBallHolder : public DeriveActorGroup< KameckFireBall > {
20+
public:
21+
KameckFireBallHolder();
22+
23+
virtual ~KameckFireBallHolder();
24+
};
25+
1826
class KameckBeamTurtleHolder : public DeriveActorGroup< KameckTurtle > {
1927
public:
2028
KameckBeamTurtleHolder();
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
#pragma once
2+
3+
#include "Game/LiveActor/LiveActor.hpp"
4+
5+
class KameckBeamEventListener;
6+
7+
class KameckFireBall : public LiveActor {
8+
public:
9+
KameckFireBall(const char*);
10+
11+
virtual ~KameckFireBall();
12+
virtual void init(const JMapInfoIter&);
13+
virtual void makeActorAppeared();
14+
virtual void kill();
15+
virtual void makeActorDead();
16+
virtual void control();
17+
virtual void calcAndSetBaseMtx();
18+
virtual void attackSensor(HitSensor*, HitSensor*);
19+
virtual bool receiveMsgPlayerAttack(u32, HitSensor*, HitSensor*);
20+
virtual bool receiveOtherMsg(u32, HitSensor*, HitSensor*);
21+
22+
TQuat4f _8C;
23+
KameckBeamEventListener* mEventListener; // 0x9C
24+
};

src/Game/Enemy/KameckBeamHolder.cpp

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#include "Game/Enemy/KameckBeamHolder.hpp"
22
#include "Game/Enemy/KameckBeam.hpp"
3+
#include "Game/Enemy/KameckFireBall.hpp"
34
#include "Game/Enemy/KameckTurtle.hpp"
45
#include "Game/LiveActor/LiveActorGroup.hpp"
56
#include "Game/Scene/SceneObjHolder.hpp"
@@ -15,6 +16,15 @@ KameckBeamHolder::KameckBeamHolder() : DeriveActorGroup< KameckBeam >("カメッ
1516
KameckBeamHolder::~KameckBeamHolder() {
1617
}
1718

19+
KameckFireBallHolder::KameckFireBallHolder() : DeriveActorGroup< KameckFireBall >("カメック火の玉管理", 0x10) {
20+
for (s32 i = 0; i < 0x10; i++) {
21+
KameckFireBall* b = new KameckFireBall("カメックビーム用炎");
22+
b->initWithoutIter();
23+
b->makeActorDead();
24+
registerActor(b);
25+
}
26+
}
27+
1828
KameckBeamTurtleHolder::KameckBeamTurtleHolder() : DeriveActorGroup< KameckTurtle >("カメックビーム用カメ管理", 0x10) {
1929
for (s32 i = 0; i < 0x10; i++) {
2030
KameckTurtle* turtle = new KameckTurtle("カメックビーム用カメ");
@@ -24,6 +34,9 @@ KameckBeamTurtleHolder::KameckBeamTurtleHolder() : DeriveActorGroup< KameckTurtl
2434
}
2535
}
2636

37+
KameckFireBallHolder::~KameckFireBallHolder() {
38+
}
39+
2740
KameckBeamTurtleHolder::~KameckBeamTurtleHolder() {
2841
}
2942

@@ -39,4 +52,36 @@ namespace MR {
3952
void createKameckBeamTurtleHolder() {
4053
MR::createSceneObj(SceneObj_KameckBeamTurtleHolder);
4154
}
55+
56+
// MR::startFollowKameckBeam
57+
58+
KameckBeam* getKameckBeam() {
59+
KameckBeamHolder* beam = MR::getSceneObj< KameckBeamHolder >(SceneObj_KameckBeamHolder);
60+
61+
if (beam->getDeadActor()) {
62+
return reinterpret_cast< KameckBeam* >(beam->getDeadActor());
63+
}
64+
65+
return nullptr;
66+
}
67+
68+
KameckFireBall* getKameckFireBall() {
69+
KameckFireBallHolder* fire = MR::getSceneObj< KameckFireBallHolder >(SceneObj_KameckFireBallHolder);
70+
71+
if (fire->getDeadActor()) {
72+
return reinterpret_cast< KameckFireBall* >(fire->getDeadActor());
73+
}
74+
75+
return nullptr;
76+
}
77+
78+
KameckTurtle* getKameckBeamTurtle() {
79+
KameckBeamTurtleHolder* t = MR::getSceneObj< KameckBeamTurtleHolder >(SceneObj_KameckBeamTurtleHolder);
80+
81+
if (t->getDeadActor()) {
82+
return reinterpret_cast< KameckTurtle* >(t->getDeadActor());
83+
}
84+
85+
return nullptr;
86+
}
4287
}; // namespace MR

0 commit comments

Comments
 (0)