Path: blob/master/SonicMania/Objects/MMZ/MMZSetup.c
338 views
// ---------------------------------------------------------------------1// RSDK Project: Sonic Mania2// Object Description: MMZSetup Object3// Object Author: Christian Whitehead/Simon Thomley/Hunter Bridges4// Decompiled by: Rubberduckycooly & RMGRich5// ---------------------------------------------------------------------67#include "Game.h"89ObjectMMZSetup *MMZSetup;1011void MMZSetup_Update(void) {}1213void MMZSetup_LateUpdate(void) {}1415void MMZSetup_StaticUpdate(void)16{17if (MMZSetup->paletteTimer == 4) {18RSDK.RotatePalette(0, 140, 142, true);19MMZSetup->paletteTimer = 0;20}21else {22MMZSetup->paletteTimer++;23}2425if (Zone->actID == 1) {26if (!MMZSetup->panelAniTimer) {27if (++MMZSetup->panelAniFrame > 11)28MMZSetup->panelAniFrame = 0;2930RSDK.DrawAniTiles(MMZSetup->aniTiles, 282, 0, 16 * MMZSetup->panelAniFrame, 16, 16);31}3233if (++MMZSetup->panelAniTimer == (MMZSetup->panelAniDuration >> 1)) {34MMZSetup->panelAniTimer = 0;3536if (--MMZSetup->panelAniDuration < 4)37MMZSetup->panelAniDuration = 4;38}39}4041if (--MMZSetup->pistonAniDuration < 1) {42MMZSetup->pistonAniFrame += 32;43MMZSetup->pistonAniFrame %= 384;4445MMZSetup->pistonAniDuration = MMZSetup->pistonAniDurationTable[MMZSetup->pistonAniFrame >> 5];46RSDK.DrawAniTiles(MMZSetup->aniTiles, 336, 96 + ((MMZSetup->pistonAniFrame >> 4) & 0xFFF0), MMZSetup->pistonAniFrame & 0xFF, 16, 32);47}4849if (++MMZSetup->lightsAniDuration == 2) {50MMZSetup->lightsAniDuration = 0;5152MMZSetup->spinLightsAniFrame += 16;53MMZSetup->spinLightsAniFrame %= 384;54RSDK.DrawAniTiles(MMZSetup->aniTiles, 338, 16 + ((MMZSetup->spinLightsAniFrame >> 4) & 0xFFF0), MMZSetup->spinLightsAniFrame & 0xFF, 16, 16);5556MMZSetup->generatorAniFrame += 32;57MMZSetup->generatorAniFrame &= 0xFF;58RSDK.DrawAniTiles(MMZSetup->aniTiles, 330, 48, MMZSetup->generatorAniFrame, 16, 32);59RSDK.DrawAniTiles(MMZSetup->aniTiles, 332, 64, MMZSetup->generatorAniFrame, 32, 32);60}61}6263void MMZSetup_Draw(void) {}6465void MMZSetup_Create(void *data) {}6667void MMZSetup_StageLoad(void)68{69MMZSetup->aniTiles = RSDK.LoadSpriteSheet("MMZ/AniTiles.gif", SCOPE_STAGE);7071Animals->animalTypes[0] = ANIMAL_CUCKY;72Animals->animalTypes[1] = ANIMAL_POCKY;7374if (Zone->actID) {75RSDK.GetTileLayer(0)->scrollPos = 384 << 16;76RSDK.GetTileLayer(1)->scrollPos = 384 << 16;7778#if MANIA_USE_PLUS79for (int32 l = 3; l < 5; ++l) RSDK.GetTileLayer(l)->scrollInfo[0].scrollPos = (0x100 - ScreenInfo->center.x) << 16;80#endif8182MMZSetup->panelAniDuration = 16;83if (!CutsceneRules_CheckStageReload() && CutsceneRules_CheckPlayerPos(TO_FIXED(44), TO_FIXED(1852), TO_FIXED(260), TO_FIXED(2092))) {84Zone->cameraBoundsB[0] = 2092;85Zone->cameraBoundsB[1] = 2092;86Zone->cameraBoundsB[2] = 2092;87Zone->cameraBoundsB[3] = 2092;88}8990if (isMainGameMode() && globals->atlEnabled) {91if (!CutsceneRules_CheckStageReload())92Zone_ReloadStoredEntities(TO_FIXED(256), TO_FIXED(2092), true);93}9495#if MANIA_USE_PLUS96if (isMainGameMode() && CutsceneRules_IsAct2())97Zone->stageFinishCallback = MMZSetup_StageFinish_EndAct2;98#endif99}100else {101if (isMainGameMode() && CutsceneRules_IsAct1()) {102Zone->shouldRecoverPlayers = true;103Zone->stageFinishCallback = MMZSetup_StageFinish_EndAct1;104}105106Zone->cameraBoundsB[0] = 5120;107Zone->cameraBoundsB[1] = 5120;108Zone->cameraBoundsB[2] = 5120;109Zone->cameraBoundsB[3] = 5120;110}111112#if MANIA_USE_PLUS113if (SceneInfo->filter & FILTER_ENCORE) {114RSDK.LoadPalette(0, "EncoreMMZ.act", 0b0000000011111111);115RSDK.LoadPalette(3, "EncoreMMZfp.act", 0b0000000011111111);116RSDK.LoadPalette(4, "EncoreMMZf.act", 0b0000000011111111);117}118#endif119}120121void MMZSetup_StageFinish_EndAct1(void)122{123Zone_StoreEntities((Zone->cameraBoundsL[0] + ScreenInfo->center.x) << 16, Zone->cameraBoundsB[0] << 16);124RSDK.LoadScene();125}126127#if MANIA_USE_PLUS128void MMZSetup_StageFinish_EndAct2(void) { CREATE_ENTITY(MMZ2Outro, NULL, 0, 0); }129#endif130131#if GAME_INCLUDE_EDITOR132void MMZSetup_EditorDraw(void) {}133134void MMZSetup_EditorLoad(void) {}135#endif136137void MMZSetup_Serialize(void) {}138139140