Skip to content

Commit

Permalink
Merge pull request #23 from poec987/layer-changer-fix
Browse files Browse the repository at this point in the history
Layer Changer Fix
  • Loading branch information
Luminyx1 authored Nov 19, 2022
2 parents 3279075 + cfdbe91 commit a834c52
Showing 1 changed file with 11 additions and 17 deletions.
28 changes: 11 additions & 17 deletions source/actors/layerchanger.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ class LayerChanger : public StageActor {
u8 trigEvent;
u32 layerDest;
bool isDone;
EventMgr eventmgr;
};

const Profile LayerChangerProfile(&LayerChanger::build, ProfileID::LayerChanger);
Expand All @@ -32,36 +31,31 @@ Actor* LayerChanger::build(const ActorBuildInfo* buildInfo) {
}

u32 LayerChanger::onCreate() {
this->trigEvent = (this->eventID1 & 0xFF); // nybbles 1-2
this->trigEvent = (this->eventID1 & 0xFF) - 1; // nybbles 1-2
this->layerDest = (this->settings1 >> 0x1C & 0xF); // nybble 5
this->isDone = false;

/* Layer chart
0 - Layer 1
1 - Layer 2
2 - Layer 0
*/
PRINT("Event: ", trigEvent);

return this->onExecute();
}

u32 LayerChanger::onExecute() {
if (!this->isDone) {
PRINT("Currently checking if Event ID ", trigEvent, " was triggered...");
if (EventMgr::instance()->isActive(this->trigEvent)) {
this->isDone = true;
PRINT("Event ID ", trigEvent, " was triggered");
for (u32 i = 0; i < 4; i++) {
Player* player = PlayerMgr::instance()->players[i];
if (player) {
player->layer = this->layerDest;
}
if (!EventMgr::instance()->isActive(trigEvent)) {
this->isDone = false;
} else if (!this->isDone) {
for (u32 i = 0; i < 4; i++) {
Player* player = PlayerMgr::instance()->players[i];
if (player) {
player->layer = this->layerDest;
}
}
}

if (EventMgr::instance()->isActive(this->eventID1)) {
PRINT("Event activated");

this->isDone = true;
}

return 1;
Expand Down

0 comments on commit a834c52

Please sign in to comment.