ref: 2c4de3dc497a89027aed78548436e64c3631499e
dir: /src/dungeon.h/
#pragma once typedef struct RoomBounds RoomBounds; enum { kDoorType_Regular = 0, kDoorType_Regular2 = 2, kDoorType_4 = 4, kDoorType_EntranceDoor = 6, kDoorType_WaterfallTunnel = 8, kDoorType_EntranceLarge = 10, kDoorType_EntranceLarge2 = 12, kDoorType_EntranceCave = 14, kDoorType_EntranceCave2 = 16, kDoorType_ExitToOw = 18, kDoorType_ThroneRoom = 20, kDoorType_PlayerBgChange = 22, kDoorType_ShuttersTwoWay = 24, kDoorType_InvisibleDoor = 26, kDoorType_SmallKeyDoor = 0x1c, kDoorType_1E = 0x1e, kDoorType_StairMaskLocked0 = 32, kDoorType_StairMaskLocked1 = 34, kDoorType_StairMaskLocked2 = 36, kDoorType_StairMaskLocked3 = 38, kDoorType_BreakableWall = 0x28, kDoorType_LgExplosion = 48, kDoorType_Slashable = 50, kDoorType_36 = 0x36, kDoorType_38 = 0x38, kDoorType_RegularDoor33 = 64, kDoorType_Shutter = 68, kDoorType_WarpRoomDoor = 70, kDoorType_ShutterTrapUR = 72, kDoorType_ShutterTrapDL = 74, }; typedef struct DungPalInfo { uint8 pal0; uint8 pal1; uint8 pal2; uint8 pal3; } DungPalInfo; extern const uint8 kDungAnimatedTiles[24]; uint16 *DstoPtr(uint16 d); void Object_Fill_Nx1(int n, const uint16 *src, uint16 *dst); void Object_Draw_5x4(const uint16 *src, uint16 *dst); void Object_Draw_4x2_BothBgs(const uint16 *src, uint16 dsto); void Object_ChestPlatform_Helper(const uint16 *src, int dsto); void Object_Hole(const uint16 *src, uint16 *dst); void LoadType1ObjectSubtype1(uint8 idx, uint16 *dst, uint16 dsto); void Object_DrawNx3_BothBgs(int n, const uint16 *src, int dsto); void LoadType1ObjectSubtype2(uint8 idx, uint16 *dst, uint16 dsto); void Object_BombableFloorHelper(uint16 a, const uint16 *src, const uint16 *src_below, uint16 *dst, uint16 dsto); void LoadType1ObjectSubtype3(uint8 idx, uint16 *dst, uint16 dsto); void RoomBounds_AddA(RoomBounds *r); void RoomBounds_AddB(RoomBounds *r); void RoomBounds_SubB(RoomBounds *r); void RoomBounds_SubA(RoomBounds *r); void Dungeon_StartInterRoomTrans_Left(void); void Dung_StartInterRoomTrans_Left_Plus(void); void Dungeon_StartInterRoomTrans_Up(void); void Dungeon_StartInterRoomTrans_Down(void); void Dungeon_Store2x2(uint16 pos, uint16 t0, uint16 t1, uint16 t2, uint16 t3, uint8 attr); uint16 Dungeon_MapVramAddr(uint16 pos); uint16 Dungeon_MapVramAddrNoSwap(uint16 pos); void Door_Up_EntranceDoor(uint16 dsto); void Door_Down_EntranceDoor(uint16 dsto); void Door_Left_EntranceDoor(uint16 dsto); void Door_Right_EntranceDoor(uint16 dsto); void Door_Draw_Helper4(uint8 door_type, uint16 dsto); const uint16 *GetRoomDoorInfo(int room); const uint8 *GetRoomHeaderPtr(int room); const uint8 *GetDefaultRoomLayout(int i); const uint8 *GetDungeonRoomLayout(int i); void Dung_TagRoutine_0x22_0x3B(int k, uint8 j); void Sprite_HandlePushedBlocks_One(int i); void Object_Draw_DoorLeft_3x4(uint16 src, int door); void Object_Draw_DoorRight_3x4(uint16 src, int door); void Dungeon_OpeningLockedDoor_Combined(bool skip_anim); const DungPalInfo *GetDungPalInfo(int idx); uint16 Dungeon_GetTeleMsg(int room); bool Dungeon_IsPitThatHurtsPlayer(void); void Dungeon_PrepareNextRoomQuadrantUpload(void); void WaterFlood_BuildOneQuadrantForVRAM(void); void TileMapPrep_NotWaterOnTag(void); void OrientLampLightCone(void); void PrepareDungeonExitFromBossFight(void); void SavePalaceDeaths(void); void Dungeon_LoadRoom(void); void RoomDraw_DrawAllObjects(const uint8 *level_data); void RoomData_DrawObject_Door(uint16 a); void RoomData_DrawObject(uint16 r0, const uint8 *level_data); void RoomDraw_DrawFloors(const uint8 *level_data); void RoomDraw_FloorChunks(const uint16 *src); void RoomDraw_A_Many32x32Blocks(int n, const uint16 *src, uint16 *dst); void RoomDraw_1x3_rightwards(int n, const uint16 *src, uint16 *dst); bool RoomDraw_CheckIfWallIsMoved(void); void MovingWall_FillReplacementBuffer(int dsto); void Object_Table_Helper(const uint16 *src, uint16 *dst); void DrawWaterThing(uint16 *dst, const uint16 *src); void RoomDraw_4x4(const uint16 *src, uint16 *dst); void RoomDraw_Object_Nx4(int n, const uint16 *src, uint16 *dst); void Object_DrawNx4_BothBgs(int n, const uint16 *src, int dsto); void RoomDraw_Rightwards2x2(const uint16 *src, uint16 *dst); void Object_Draw_3x2(const uint16 *src, uint16 *dst); void RoomDraw_WaterHoldingObject(int n, const uint16 *src, uint16 *dst); void RoomDraw_SomeBigDecors(int n, const uint16 *src, uint16 dsto); void RoomDraw_SingleLampCone(uint16 a, uint16 y); void RoomDraw_AgahnimsWindows(uint16 dsto); void RoomDraw_FortuneTellerRoom(uint16 dsto); void Object_Draw8x8(const uint16 *src, uint16 *dst); void RoomDraw_Door_North(int type, int pos_enum); void Door_Up_StairMaskLocked(uint8 door_type, uint16 dsto); void Door_PrioritizeCurDoor(void); void RoomDraw_NormalRangedDoors_North(uint8 door_type, uint16 dsto, int pos_enum); void RoomDraw_OneSidedShutters_North(uint8 door_type, uint16 dsto); void RoomDraw_Door_South(int type, int pos_enum); void RoomDraw_CheckIfLowerLayerDoors_Y(uint8 door_type, uint16 dsto); void RoomDraw_Door_West(int type, int pos_enum); void RoomDraw_NormalRangedDoors_West(uint8 door_type, uint16 dsto, int pos_enum); void RoomDraw_Door_East(int type, int pos_enum); void RoomDraw_NormalRangedDoors_East(uint8 door_type, uint16 dsto); void RoomDraw_OneSidedShutters_East(uint8 door_type, uint16 dsto); void RoomDraw_NorthCurtainDoor(uint16 dsto); void RoomDraw_Door_ExplodingWall(int pos_enum); void RoomDraw_ExplodingWallSegment(const uint16 *src, uint16 dsto); void RoomDraw_ExplodingWallColumn(const uint16 *src, uint16 *dst); void RoomDraw_HighRangeDoor_North(uint8 door_type, uint16 dsto, int pos_enum); void RoomDraw_OneSidedLowerShutters_South(uint8 door_type, uint16 dsto); void RoomDraw_HighRangeDoor_West(uint8 door_type, uint16 dsto, int pos_enum); void RoomDraw_OneSidedLowerShutters_East(uint8 door_type, uint16 dsto); void RoomDraw_MakeDoorHighPriority_North(uint16 dsto); void RoomDraw_MakeDoorHighPriority_South(uint16 dsto); void RoomDraw_MakeDoorHighPriority_West(uint16 dsto); void RoomDraw_MakeDoorHighPriority_East(uint16 dsto); void RoomDraw_MarkDungeonToggleDoor(uint16 dsto); void RoomDraw_MarkLayerToggleDoor(uint16 dsto); void RoomDraw_GetObjectSize_1to16(void); void Object_SizeAtoAplus15(uint8 a); void RoomDraw_GetObjectSize_1to15or26(void); void RoomDraw_GetObjectSize_1to15or32(void); int RoomDraw_FlagDoorsAndGetFinalType(uint8 direction, uint8 door_type, uint16 dsto); void RoomDraw_MakeDoorPartsHighPriority_Y(uint16 dsto); void RoomDraw_MakeDoorPartsHighPriority_X(uint16 dsto); void RoomDraw_Downwards4x2VariableSpacing(int increment, const uint16 *src, uint16 *dst); uint16 *RoomDraw_DrawObject2x2and1(const uint16 *src, uint16 *dst); uint16 *RoomDraw_RightwardShelfEnd(const uint16 *src, uint16 *dst); uint16 *RoomDraw_RightwardBarSegment(const uint16 *src, uint16 *dst); void DrawBigGraySegment(uint16 a, const uint16 *src, uint16 *dst, uint16 dsto); void RoomDraw_SinglePot(const uint16 *src, uint16 *dst, uint16 dsto); void RoomDraw_BombableFloor(const uint16 *src, uint16 *dst, uint16 dsto); void RoomDraw_HammerPegSingle(const uint16 *src, uint16 *dst, uint16 dsto); void DrawObjects_PushableBlock(uint16 dsto_x2, uint16 slot); void DrawObjects_LightableTorch(uint16 dsto_x2, uint16 slot); void Dungeon_LoadHeader(void); void Dungeon_CheckAdjacentRoomsForOpenDoors(int idx, int room); void Dungeon_LoadAdjacentRoomDoors(int room); void Dungeon_LoadAttribute_Selectable(void); void Dungeon_LoadAttributeTable(void); void Dungeon_LoadBasicAttribute_full(uint16 loops); void Dungeon_LoadObjectAttribute(void); void Dungeon_LoadDoorAttribute(void); void Dungeon_LoadSingleDoorAttribute(int k); void Door_LoadBlastWallAttr(int k); void ChangeDoorToSwitch(void); void Dungeon_FlipCrystalPegAttribute(void); void Dungeon_HandleRoomTags(void); void Dung_TagRoutine_0x00(int k); void Dungeon_DetectStaircase(void); void RoomTag_NorthWestTrigger(int k); void Dung_TagRoutine_0x2A(int k); void Dung_TagRoutine_0x2B(int k); void Dung_TagRoutine_0x2C(int k); void Dung_TagRoutine_0x2D(int k); void Dung_TagRoutine_0x2E(int k); void Dung_TagRoutine_0x2F(int k); void Dung_TagRoutine_0x30(int k); void RoomTag_QuadrantTrigger(int k); void Dung_TagRoutine_TrapdoorsUp(void); void RoomTag_RoomTrigger(int k); void RoomTag_RekillableBoss(int k); void RoomTag_RoomTrigger_BlockDoor(int k); void RoomTag_PrizeTriggerDoorDoor(int k); void RoomTag_SwitchTrigger_HoldDoor(int k); void RoomTag_SwitchTrigger_ToggleDoor(int k); void PushPressurePlate(uint8 attr); void RoomTag_TorchPuzzleDoor(int k); void RoomTag_Switch_ExplodingWall(int k); void RoomTag_PullSwitchExplodingWall(int k); void Dung_TagRoutine_BlastWallStuff(int k); void RoomTag_GetHeartForPrize(int k); void RoomTag_Agahnim(int k); void RoomTag_GanonDoor(int tagidx); void RoomTag_KillRoomBlock(int k); void RoomTag_PushBlockForChest(int k); void RoomTag_TriggerChest(int k); void RoomTag_OperateChestReveal(int k); void RoomTag_TorchPuzzleChest(int k); void RoomTag_MovingWall_East(int k); void RoomTag_MovingWallShakeItUp(int k); void RoomTag_MovingWall_West(int k); void RoomTag_MovingWallTorchesCheck(int k); int MovingWall_MoveALittle(void); int RoomTag_AdvanceGiganticWall(int k); void RoomTag_WaterOff(int k); void RoomTag_WaterOn(int k); void RoomTag_WaterGate(int k); void Dung_TagRoutine_0x1B(int k); void RoomTag_Holes0(int k); void Dung_TagRoutine_0x23(int k); void Dung_TagRoutine_0x34(int k); void Dung_TagRoutine_0x35(int k); void Dung_TagRoutine_0x36(int k); void Dung_TagRoutine_0x37(int k); void Dung_TagRoutine_0x39(int k); void Dung_TagRoutine_0x3A(int k); void Dung_TagRoutine_Func2(uint8 av); void RoomTag_ChestHoles0(int k); void Dung_TagRoutine_0x3B(int k); void RoomTag_Holes2(int k); void RoomTag_OperateWaterFlooring(void); bool RoomTag_MaybeCheckShutters(uint8 *attr_out); int RoomTag_GetTilemapCoords(void); bool RoomTag_CheckForPressedSwitch(uint8 *y_out); void Dungeon_ProcessTorchesAndDoors(void); void Bomb_CheckForDestructibles(uint16 x, uint16 y, uint8 r14); int DrawDoorOpening_Step1(int door, int dma_ptr); void DrawShutterDoorSteps(int door); void DrawEyeWatchDoor(int door); void Door_BlastWallExploding_Draw(int dsto); void OperateShutterDoors(void); void OpenCrackedDoor(void); void Dungeon_LoadToggleDoorAttr_OtherEntry(int door); void Dungeon_LoadSingleDoorTileAttribute(void); void DrawCompletelyOpenDoor(void); void Dungeon_ClearAwayExplodingWall(void); uint16 Dungeon_CheckForAndIDLiftableTile(void); void Dungeon_PushBlock_Handler(void); void RoomDraw_16x16Single(uint8 index); void PushBlock_CheckForPit(uint8 y); uint8 Dungeon_LiftAndReplaceLiftable(Point16U *pt); uint8 ThievesAttic_DrawLightenedHole(uint16 pos6, uint16 a, Point16U *pt); uint8 HandleItemTileAction_Dungeon(uint16 x, uint16 y); void ManipBlock_Something(Point16U *pt); void RevealPotItem(uint16 pos6, uint16 pos4); void Dungeon_UpdateTileMapWithCommonTile(int x, int y, uint8 v); void Dungeon_PrepSpriteInducedDma(int x, int y, uint8 v); void Dungeon_DeleteRupeeTile(uint16 x, uint16 y); uint8 OpenChestForItem(uint8 tile, int *chest_position); void OpenBigChest(uint16 loc, int *chest_position); uint8 OpenMiniGameChest(int *chest_position); uint16 RoomTag_BuildChestStripes(uint16 pos, uint16 y); void Dungeon_SetAttrForActivatedWaterOff(void); void Dungeon_FloodSwampWater_PrepTileMap(void); void Dungeon_AdjustWaterVomit(const uint16 *src, int depth); void Dungeon_SetAttrForActivatedWater(void); void FloodDam_Expand(void); void FloodDam_PrepTiles_init(void); void Watergate_Main_State1(void); void FloodDam_Fill(void); void Ganon_ExtinguishTorch_adjust_translucency(void); void Ganon_ExtinguishTorch(void); void Dungeon_ExtinguishTorch(void); void SpiralStairs_MakeNearbyWallsHighPriority_Entering(void); void SpiralStairs_MakeNearbyWallsLowPriority(void); void ClearAndStripeExplodingWall(uint16 dsto); void Dungeon_DrawRoomOverlay(const uint8 *src); void GetDoorDrawDataIndex_North_clean_door_index(int door); int DoorDoorStep1_North(int door, int dma_ptr); void GetDoorDrawDataIndex_North(int door, int r4_door); void DrawDoorToTileMap_North(int door, int r4_door); void Object_Draw_DoorUp_4x3(uint16 src, int door); void GetDoorDrawDataIndex_South_clean_door_index(int door); int DoorDoorStep1_South(int door, int dma_ptr); void GetDoorDrawDataIndex_South(int door, int r4_door); void DrawDoorToTileMap_South(int door, int r4_door); void Object_Draw_DoorDown_4x3(uint16 src, int door); void GetDoorDrawDataIndex_West_clean_door_index(int door); int DoorDoorStep1_West(int door, int dma_ptr); void GetDoorDrawDataIndex_West(int door, int r4_door); void DrawDoorToTileMap_West(int door, int r4_door); void GetDoorDrawDataIndex_East_clean_door_index(int door); int DoorDoorStep1_East(int door, int dma_ptr); void GetDoorDrawDataIndex_East(int door, int r4_door); void DrawDoorToTileMap_East(int door, int r4_door); uint8 GetDoorGraphicsIndex(int door, int r4_door); void ClearExplodingWallFromTileMap_ClearOnePair(uint16 *dst, const uint16 *src); void Dungeon_DrawRoomOverlay_Apply(int p); void ApplyGrayscaleFixed_Incremental(void); void Dungeon_ApproachFixedColor_variable(uint8 a); void Module_PreDungeon(void); void Module_PreDungeon_setAmbientSfx(void); void LoadOWMusicIfNeeded(void); void Module07_Dungeon(void); void Dungeon_TryScreenEdgeTransition(void); void Dungeon_HandleEdgeTransitionMovement(int dir); void Module07_00_PlayerControl(void); void Module07_01_SubtileTransition(void); void DungeonTransition_Subtile_ResetShutters(void); void DungeonTransition_Subtile_PrepTransition(void); void DungeonTransition_Subtile_ApplyFilter(void); void DungeonTransition_Subtile_TriggerShutters(void); void Module07_02_SupertileTransition(void); void Module07_02_00_InitializeTransition(void); void Module07_02_01_LoadNextRoom(void); void Dungeon_InterRoomTrans_State3(void); void Dungeon_InterRoomTrans_State10(void); void Dungeon_SpiralStaircase11(void); void Dungeon_InterRoomTrans_notDarkRoom(void); void Dungeon_InterRoomTrans_State9(void); void Dungeon_SpiralStaircase12(void); void Dungeon_InterRoomTrans_State4(void); void Dungeon_InterRoomTrans_State12(void); void Dungeon_Staircase14(void); void Dungeon_ResetTorchBackgroundAndPlayer(void); void Dungeon_ResetTorchBackgroundAndPlayerInner(void); void Dungeon_InterRoomTrans_State7(void); void DungeonTransition_RunFiltering(void); void Module07_02_FadedFilter(void); void Dungeon_InterRoomTrans_State15(void); void Dungeon_PlayMusicIfDefeated(void); void Module07_03_OverlayChange(void); void Module07_04_UnlockDoor(void); void Module07_05_ControlShutters(void); void Module07_06_FatInterRoomStairs(void); void Module07_0E_01_HandleMusicAndResetProps(void); void ResetTransitionPropsAndAdvance_ResetInterface(void); void ResetTransitionPropsAndAdvanceSubmodule(void); void Dungeon_InitializeRoomFromSpecial(void); void DungeonTransition_LoadSpriteGFX(void); void DungeonTransition_AdjustForFatStairScroll(void); void ResetThenCacheRoomEntryProperties(void); void DungeonTransition_TriggerBGC34UpdateAndAdvance(void); void DungeonTransition_TriggerBGC56UpdateAndAdvance(void); void Module07_07_FallingTransition(void); void Module07_07_00_HandleMusicAndResetRoom(void); void Module07_07_06_SyncBG1and2(void); void Module07_07_0F_FallingFadeIn(void); void Dungeon_PlayBlipAndCacheQuadrantVisits(void); void Module07_07_10_LandLinkFromFalling(void); void Module07_07_11_CacheRoomAndSetMusic(void); void Module07_08_NorthIntraRoomStairs(void); void Module07_08_00_InitStairs(void); void Module07_08_01_ClimbStairs(void); void Module07_10_SouthIntraRoomStairs(void); void Module07_10_00_InitStairs(void); void Module07_10_01_ClimbStairs(void); void Module07_09_OpenCrackedDoor(void); void Module07_0A_ChangeBrightness(void); void Module07_0B_DrainSwampPool(void); void Module07_0C_FloodSwampWater(void); void Module07_0D_FloodDam(void); void Module07_0E_SpiralStairs(void); void Dungeon_DoubleApplyAndIncrementGrayscale(void); void Module07_0E_02_ApplyFilterIf(void); void Dungeon_SyncBackgroundsFromSpiralStairs(void); void Dungeon_AdvanceThenSetBossMusicUnorthodox(void); void Dungeon_SetBossMusicUnorthodox(void); void Dungeon_SpiralStaircase17(void); void Dungeon_SpiralStaircase18(void); void Module07_0E_00_InitPriorityAndScreens(void); void Module07_0E_13_SetRoomAndLayerAndCache(void); void RepositionLinkAfterSpiralStairs(void); void SpiralStairs_MakeNearbyWallsHighPriority_Exiting(void); void Module07_0F_LandingWipe(void); void Module07_0F_00_InitSpotlight(void); void Module07_0F_01_OperateSpotlight(void); void Module07_11_StraightInterroomStairs(void); void Module07_11_00_PrepAndReset(void); void Module07_11_01_FadeOut(void); void Module07_11_02_LoadAndPrepRoom(void); void Module07_11_03_FilterAndLoadBGChars(void); void Module07_11_04_FilterDoBGAndResetSprites(void); void Module07_11_0B_PrepDestination(void); void Module07_11_09_LoadSpriteGraphics(void); void Module07_11_19_SetSongAndFilter(void); void Module07_11_11_KeepSliding(void); void Module07_14_RecoverFromFall(void); void Module07_14_00_ScrollCamera(void); void Module07_15_WarpPad(void); void Module07_15_01_ApplyMosaicAndFilter(void); void Module07_15_04_SyncRoomPropsAndBuildOverlay(void); void Module07_15_0E_FadeInFromWarp(void); void Module07_15_0F_FinalizeAndCacheEntry(void); void Module07_16_UpdatePegs(void); void Module07_17_PressurePlate(void); void Module07_18_RescuedMaiden(void); void Module07_19_MirrorFade(void); void Module07_1A_RoomDraw_OpenTriforceDoor_bounce(void); void Module11_DungeonFallingEntrance(void); void Module11_02_LoadEntrance(void); void Dungeon_LoadSongBankIfNeeded(void); void Mirror_SaveRoomData(void); void SaveDungeonKeys(void); void Dungeon_AdjustAfterSpiralStairs(void); void Dungeon_AdjustForTeleportDoors(uint8 room, uint8 flag); void Dungeon_AdjustForRoomLayout(void); void HandleEdgeTransitionMovementEast_RightBy8(void); void Dungeon_StartInterRoomTrans_Right(void); void HandleEdgeTransitionMovementSouth_DownBy16(void); void Dung_HandleExitToOverworld(void); void AdjustQuadrantAndCamera_right(void); void SetAndSaveVisitedQuadrantFlags(void); void SaveQuadrantsToSram(void); void AdjustQuadrantAndCamera_left(void); void AdjustQuadrantAndCamera_down(void); void AdjustQuadrantAndCamera_up(void); void Dungeon_FlagRoomData_Quadrants(void); void Dung_SaveDataForCurrentRoom(void); void HandleEdgeTransition_AdjustCameraBoundaries(uint8 arg); void Dungeon_AdjustQuadrant(void); void Dungeon_HandleCamera(void); void MirrorBg1Bg2Offs(void); void DungeonTransition_AdjustCamera_X(uint8 arg); void DungeonTransition_AdjustCamera_Y(uint8 arg); void DungeonTransition_ScrollRoom(void); void Module07_11_0A_ScrollCamera(void); void DungeonTransition_FindSubtileLanding(void); void SubtileTransitionCalculateLanding(void); void Dungeon_InterRoomTrans_State13(void); void Dungeon_IntraRoomTrans_State5(void); bool DungeonTransition_MoveLinkOutDoor(void); uint8 CalculateTransitionLanding(void); void Dungeon_LoadAndDrawRoom(void); void Dungeon_LoadEntrance(void); void PushBlock_Slide(uint8 j); void PushBlock_HandleFalling(uint8 y); void PushBlock_ApplyVelocity(uint8 i); void PushBlock_HandleCollision(uint8 i, uint16 x, uint16 y); void Sprite_Dungeon_DrawAllPushBlocks(void); void UsedForStraightInterRoomStaircase(void); void HandleLinkOnSpiralStairs(void); void SpiralStairs_FindLandingSpot(void); void Dungeon_HandleLayerEffect(void); void LayerEffect_Nothing(void); void LayerEffect_Scroll(void); void LayerEffect_Trinexx(void); void LayerEffect_Agahnim2(void); void LayerEffect_InvisibleFloor(void); void LayerEffect_Ganon(void); void LayerEffect_WaterRapids(void); void Dungeon_LoadCustomTileAttr(void); void Link_CheckBunnyStatus(void); void CrystalCutscene_Initialize(void); void CrystalCutscene_SpawnMaiden(void);