mirror of https://github.com/zeldaret/tmc.git
32 lines
1.3 KiB
C
32 lines
1.3 KiB
C
/**
|
|
* @file cloudStaircaseTransitionManager.c
|
|
* @ingroup Managers
|
|
*
|
|
* @brief Manages the transition on top of a cloud staircase.
|
|
*/
|
|
#include "manager/cloudStaircaseTransitionManager.h"
|
|
#include "asm.h"
|
|
#include "common.h"
|
|
#include "functions.h"
|
|
|
|
void CloudStaircaseTransitionManager_Main(CloudStaircaseTransitionManager* this) {
|
|
if (super->action == 0) {
|
|
super->action = 1;
|
|
this->y = 0;
|
|
}
|
|
if (((CheckPlayerInRegion(this->x, this->y, 0x14, 0x40) != 0) &&
|
|
(((gPlayerEntity.base.y.HALF.HI - gRoomControls.origin_y) + gPlayerEntity.base.z.HALF.HI) < 0)) &&
|
|
(gRoomControls.scroll_y == gRoomControls.origin_y)) {
|
|
MemClear(&gRoomTransition.player_status, sizeof(PlayerRoomStatus));
|
|
gRoomTransition.transitioningOut = 1;
|
|
gRoomTransition.type = TRANSITION_DEFAULT;
|
|
gRoomTransition.player_status.spawn_type = PL_SPAWN_PARACHUTE_UP;
|
|
gRoomTransition.player_status.area_next = super->type2;
|
|
gRoomTransition.player_status.room_next = super->timer;
|
|
gRoomTransition.player_status.start_anim = this->field_0x37;
|
|
gRoomTransition.player_status.start_pos_x = this->field_0x3c;
|
|
gRoomTransition.player_status.start_pos_y = this->field_0x3e;
|
|
gRoomTransition.player_status.layer = this->field_0x36;
|
|
}
|
|
}
|