diff options
Diffstat (limited to 'src/meteor.cpp')
-rwxr-xr-x | src/meteor.cpp | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/meteor.cpp b/src/meteor.cpp index 352e66b..9e8c450 100755 --- a/src/meteor.cpp +++ b/src/meteor.cpp @@ -54,10 +54,21 @@ void MeteorPhysicsCallback(dMeteor *self, dEn_c *other) { if (other->name == 657) { OSReport("CANNON COLLISION"); - SpawnEffect("Wm_en_burst_m", 0, &other->pos, &(S16Vec){0,0,0}, &(Vec){1.0, 1.0, 1.0}); + SpawnEffect("Wm_en_explosion", 0, &other->pos, &(S16Vec){0,0,0}, &(Vec){1.0, 1.0, 1.0}); + SpawnEffect("Wm_en_explosion_smk", 0, &other->pos, &(S16Vec){0,0,0}, &(Vec){1.0, 1.0, 1.0}); PlaySound(other, SE_OBJ_TARU_BREAK); other->Delete(1); + switch ((self->settings >> 24) & 3) { + case 1: + dStageActor_c::create(EN_HATENA_BALLOON, 0x100, &self->pos, 0, self->currentLayerID); + break; + case 2: + VEC3 coinPos = {self->pos.x - 16.0f, self->pos.y, self->pos.z}; + dStageActor_c::create(EN_COIN, 9, &coinPos, 0, self->currentLayerID); + break; + } + self->kill(); } } @@ -125,7 +136,7 @@ int dMeteor::onCreate() { MakeItRound.addToList(); - this->pos.z = 3458.0; + this->pos.z = (settings & 0x1000000) ? -2000.0f : 3458.0f; this->onExecute(); return true; |