Path: blob/master/SonicMania/Objects/CPZ/CPZ2Outro.c
338 views
// ---------------------------------------------------------------------1// RSDK Project: Sonic Mania2// Object Description: CPZ2Outro Object3// Object Author: Christian Whitehead/Simon Thomley/Hunter Bridges4// Decompiled by: Rubberduckycooly & RMGRich5// ---------------------------------------------------------------------67#include "Game.h"89ObjectCPZ2Outro *CPZ2Outro;1011void CPZ2Outro_Update(void)12{13RSDK_THIS(CPZ2Outro);1415if (!self->activated) {16CPZ2Outro_SetupCutscene();17self->activated = true;18}19}2021void CPZ2Outro_LateUpdate(void) {}2223void CPZ2Outro_StaticUpdate(void) {}2425void CPZ2Outro_Draw(void) {}2627void CPZ2Outro_Create(void *data)28{29RSDK_THIS(CPZ2Outro);3031INIT_ENTITY(self);32CutsceneRules_SetupEntity(self, &self->size, &self->hitbox);33self->active = ACTIVE_NEVER;34}3536void CPZ2Outro_StageLoad(void)37{38CPZ2Outro->eggPrison = NULL;39foreach_all(EggPrison, prison)40{41CPZ2Outro->eggPrison = prison;42foreach_break;43}44}4546void CPZ2Outro_SetupCutscene(void)47{48RSDK_THIS(CPZ2Outro);4950CutsceneSeq_StartSequence(self, CPZ2Outro_Cutscene_Outro, StateMachine_None);5152#if MANIA_USE_PLUS53CutsceneSeq_SetSkipType(SKIPTYPE_RELOADSCN);54#endif5556HUD_MoveOut();57}5859bool32 CPZ2Outro_Cutscene_Outro(EntityCutsceneSeq *host)60{61MANIA_GET_PLAYER(player1, player2, camera);62UNUSED(camera);6364Vector2 size;65RSDK.GetLayerSize(Zone->fgLayer[0], &size, true);6667if (!host->timer) {68CPZ2Outro->eggPrison->notSolid = true;69Zone->cameraBoundsT[0] = 0;70Zone->cameraBoundsT[1] = 0;71Zone->cameraBoundsR[0] = size.x;72Zone->cameraBoundsR[1] = size.x;73Zone->playerBoundActiveR[0] = 0;74Zone->playerBoundActiveR[1] = 0;75CutsceneSeq_LockAllPlayerControl();76player1->stateInput = StateMachine_None;77player1->state = Player_State_Ground;78player1->groundVel = 0;79player1->right = true;8081if (player2->classID == Player->classID) {82player2->state = Player_State_Ground;83player2->stateInput = Player_Input_P2_AI;84player2->groundVel = 0;85}86}8788if (player1->jumpPress)89player1->jumpPress = false;9091if (player1->onGround && player1->position.x >= host->activeEntity->position.x && !host->values[0]) {92player1->jumpPress = true;93host->values[0] = true;94}9596if (player1->position.x > size.x << 16) {97Zone_StartFadeOut(10, 0x000000);98return true;99}100return false;101}102103#if GAME_INCLUDE_EDITOR104void CPZ2Outro_EditorDraw(void)105{106RSDK_THIS(CPZ2Outro);107CutsceneRules_DrawCutsceneBounds(self, &self->size);108}109110void CPZ2Outro_EditorLoad(void) {}111#endif112113void CPZ2Outro_Serialize(void) { RSDK_EDITABLE_VAR(CPZ2Outro, VAR_VECTOR2, size); }114115116