diff --git a/P3D/Content/Data/Scripts/rival/rival_barktown.dat b/P3D/Content/Data/Scripts/rival/rival_barktown.dat index 5e70e3ee5..a0af1bc81 100644 Binary files a/P3D/Content/Data/Scripts/rival/rival_barktown.dat and b/P3D/Content/Data/Scripts/rival/rival_barktown.dat differ diff --git a/P3D/Content/Data/maps/structures/stairs/vroad/s.dat b/P3D/Content/Data/maps/structures/stairs/vroad/s.dat deleted file mode 100644 index d8f39b7da..000000000 --- a/P3D/Content/Data/maps/structures/stairs/vroad/s.dat +++ /dev/null @@ -1,9 +0,0 @@ -North: -{"Entity"{ENT[{"Scale"{sngArr[0.5,0.5,0.5]}}{"EntityID"{str[WallBlock]}}{"Position"{sngArr[0.25,0.25,0.25]}}{"TexturePath"{str[vroad]}}{"Textures"{recArr[[80,0,8,8][32,0,8,8]]}}{"TextureIndex"{intArr[0,0,0,0,0,0,0,0,-1,-1,1,1,1,1,-1,-1,-1,-1]}}{"Collision"{bool[0]}}{"ModelID"{int[16]}}{"Action"{int[0]}}{"AdditionalValue"{str[]}}{"Rotation"{int[2]}}]}} -{"Entity"{ENT[{"Scale"{sngArr[0.5,0.5,0.5]}}{"EntityID"{str[WallBlock]}}{"Position"{sngArr[-0.25,0.25,0.25]}}{"TexturePath"{str[vroad]}}{"Textures"{recArr[[88,0,8,8][32,0,8,8]]}}{"TextureIndex"{intArr[0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,1,1,1,1]}}{"Collision"{bool[0]}}{"ModelID"{int[16]}}{"Action"{int[0]}}{"AdditionalValue"{str[]}}{"Rotation"{int[2]}}]}} -{"Entity"{ENT[{"Scale"{sngArr[0.5,0.5,0.5]}}{"EntityID"{str[WallBlock]}}{"Position"{sngArr[0.25,-0.25,-0.25]}}{"TexturePath"{str[vroad]}}{"Textures"{recArr[[80,0,8,8][32,0,8,8]]}}{"TextureIndex"{intArr[0,0,0,0,0,0,0,0,1,1,1,1,1,1,-1,-1,-1,-1]}}{"Collision"{bool[0]}}{"ModelID"{int[16]}}{"Action"{int[0]}}{"AdditionalValue"{str[]}}{"Rotation"{int[2]}}]}} -{"Entity"{ENT[{"Scale"{sngArr[0.5,0.5,0.5]}}{"EntityID"{str[WallBlock]}}{"Position"{sngArr[-0.25,-0.25,-0.25]}}{"TexturePath"{str[vroad]}}{"Textures"{recArr[[88,0,8,8][32,0,8,8]]}}{"TextureIndex"{intArr[0,0,0,0,0,0,0,0,1,1,-1,-1,-1,-1,1,1,1,1]}}{"Collision"{bool[0]}}{"ModelID"{int[16]}}{"Action"{int[0]}}{"AdditionalValue"{str[]}}{"Rotation"{int[2]}}]}} - -{"Entity"{ENT[{"Scale"{sngArr[1,0.5,0.5]}}{"EntityID"{str[WallBlock]}}{"Position"{sngArr[0,-0.25,0.25]}}{"TexturePath"{str[vroad]}}{"Textures"{recArr[[32,0,8,8]]}}{"TextureIndex"{intArr[-1,-1,0,0,0,0,0,0,-1,-1]}}{"Collision"{bool[0]}}{"ModelID"{int[1]}}{"Action"{int[0]}}{"AdditionalValue"{str[]}}{"Rotation"{int[0]}}]}} - -{"Entity"{ENT[{"EntityID"{str[SlideBlock]}}{"Position"{sngArr[0,0,0]}}{"TexturePath"{str[vroad]}}{"Textures"{recArr[[16,16,16,16]]}}{"TextureIndex"{intArr[0,0,0,0,0,0,0,0,0,0]}}{"Collision"{bool[1]}}{"ModelID"{int[2]}}{"Action"{int[0]}}{"AdditionalValue"{str[]}}{"Rotation"{int[0]}}{"Visible"{bool[0]}}]}} diff --git a/P3D/Content/Sounds/Drop_Fall.wav b/P3D/Content/Sounds/Drop_Fall.wav new file mode 100644 index 000000000..b6e269852 Binary files /dev/null and b/P3D/Content/Sounds/Drop_Fall.wav differ diff --git a/P3D/Content/Sounds/Drop_Land.wav b/P3D/Content/Sounds/Drop_Land.wav new file mode 100644 index 000000000..35ae5e021 Binary files /dev/null and b/P3D/Content/Sounds/Drop_Land.wav differ diff --git a/P3D/Content/Sounds/ElevatorEnd.wav b/P3D/Content/Sounds/ElevatorEnd.wav index 8a28de2b1..83f5ea1db 100644 Binary files a/P3D/Content/Sounds/ElevatorEnd.wav and b/P3D/Content/Sounds/ElevatorEnd.wav differ diff --git a/P3D/Content/Sounds/Emote_Exclamation.wav b/P3D/Content/Sounds/Emote_Exclamation.wav index 06ccd271c..8359ef1cb 100644 Binary files a/P3D/Content/Sounds/Emote_Exclamation.wav and b/P3D/Content/Sounds/Emote_Exclamation.wav differ diff --git a/P3D/Content/Sounds/FieldMove_Cut.wav b/P3D/Content/Sounds/FieldMove_Cut.wav index fdc743c6a..cf4012dc7 100644 Binary files a/P3D/Content/Sounds/FieldMove_Cut.wav and b/P3D/Content/Sounds/FieldMove_Cut.wav differ diff --git a/P3D/Content/Sounds/FieldMove_Flash.wav b/P3D/Content/Sounds/FieldMove_Flash.wav index b2875bbbe..5454fb5af 100644 Binary files a/P3D/Content/Sounds/FieldMove_Flash.wav and b/P3D/Content/Sounds/FieldMove_Flash.wav differ diff --git a/P3D/Content/Sounds/FieldMove_Fly.wav b/P3D/Content/Sounds/FieldMove_Fly.wav index 4e2238dda..5884dcac3 100644 Binary files a/P3D/Content/Sounds/FieldMove_Fly.wav and b/P3D/Content/Sounds/FieldMove_Fly.wav differ diff --git a/P3D/Content/Sounds/FieldMove_RockSmash.wav b/P3D/Content/Sounds/FieldMove_RockSmash.wav index 2a6bdb4f7..c5d562370 100644 Binary files a/P3D/Content/Sounds/FieldMove_RockSmash.wav and b/P3D/Content/Sounds/FieldMove_RockSmash.wav differ diff --git a/P3D/Content/Sounds/FieldMove_Strength.wav b/P3D/Content/Sounds/FieldMove_Strength.wav index 2a6bdb4f7..c5d562370 100644 Binary files a/P3D/Content/Sounds/FieldMove_Strength.wav and b/P3D/Content/Sounds/FieldMove_Strength.wav differ diff --git a/P3D/Content/Sounds/Heal_Party.wav b/P3D/Content/Sounds/Heal_Party.wav index 5a89e1328..3c48dd24a 100644 Binary files a/P3D/Content/Sounds/Heal_Party.wav and b/P3D/Content/Sounds/Heal_Party.wav differ diff --git a/P3D/Content/Sounds/OverworldPoison.wav b/P3D/Content/Sounds/OverworldPoison.wav index fd210309b..c5614cbff 100644 Binary files a/P3D/Content/Sounds/OverworldPoison.wav and b/P3D/Content/Sounds/OverworldPoison.wav differ diff --git a/P3D/Content/Sounds/Receive_Badge.wav b/P3D/Content/Sounds/Receive_Badge.wav index 2e52b3a0f..041d53af4 100644 Binary files a/P3D/Content/Sounds/Receive_Badge.wav and b/P3D/Content/Sounds/Receive_Badge.wav differ diff --git a/P3D/Content/Sounds/Receive_Egg.wav b/P3D/Content/Sounds/Receive_Egg.wav index a2a82d763..1d3eebe26 100644 Binary files a/P3D/Content/Sounds/Receive_Egg.wav and b/P3D/Content/Sounds/Receive_Egg.wav differ diff --git a/P3D/Content/Sounds/Receive_HM.wav b/P3D/Content/Sounds/Receive_HM.wav index 081f3068b..00d444ba8 100644 Binary files a/P3D/Content/Sounds/Receive_HM.wav and b/P3D/Content/Sounds/Receive_HM.wav differ diff --git a/P3D/Content/Sounds/Receive_Item.wav b/P3D/Content/Sounds/Receive_Item.wav index b9fa21981..671b40a8c 100644 Binary files a/P3D/Content/Sounds/Receive_Item.wav and b/P3D/Content/Sounds/Receive_Item.wav differ diff --git a/P3D/Content/Sounds/Receive_PhoneNumber.wav b/P3D/Content/Sounds/Receive_PhoneNumber.wav index b717f1017..e0541cd6f 100644 Binary files a/P3D/Content/Sounds/Receive_PhoneNumber.wav and b/P3D/Content/Sounds/Receive_PhoneNumber.wav differ diff --git a/P3D/Content/Sounds/Save.wav b/P3D/Content/Sounds/Save.wav index b10abbdee..e27e71477 100644 Binary files a/P3D/Content/Sounds/Save.wav and b/P3D/Content/Sounds/Save.wav differ diff --git a/P3D/Content/Sounds/Success_Catch.wav b/P3D/Content/Sounds/Success_Catch.wav index 3edf13ea4..068a17de2 100644 Binary files a/P3D/Content/Sounds/Success_Catch.wav and b/P3D/Content/Sounds/Success_Catch.wav differ diff --git a/P3D/Content/Sounds/Use_Item.wav b/P3D/Content/Sounds/Use_Item.wav index 6e952de6d..5bce8a925 100644 Binary files a/P3D/Content/Sounds/Use_Item.wav and b/P3D/Content/Sounds/Use_Item.wav differ diff --git a/P3D/Content/Sounds/Use_Repel.wav b/P3D/Content/Sounds/Use_Repel.wav index 3e09061b5..fffd3449e 100644 Binary files a/P3D/Content/Sounds/Use_Repel.wav and b/P3D/Content/Sounds/Use_Repel.wav differ diff --git a/P3D/Content/Sounds/Warp_Door.wav b/P3D/Content/Sounds/Warp_Door.wav new file mode 100644 index 000000000..32f2526d8 Binary files /dev/null and b/P3D/Content/Sounds/Warp_Door.wav differ diff --git a/P3D/Content/Sounds/Warp_Exit.wav b/P3D/Content/Sounds/Warp_Exit.wav new file mode 100644 index 000000000..6f18e96fb Binary files /dev/null and b/P3D/Content/Sounds/Warp_Exit.wav differ diff --git a/P3D/Content/Sounds/Warp_Ladder.wav b/P3D/Content/Sounds/Warp_Ladder.wav new file mode 100644 index 000000000..fa1a8bb36 Binary files /dev/null and b/P3D/Content/Sounds/Warp_Ladder.wav differ diff --git a/P3D/Content/Sounds/bump.wav b/P3D/Content/Sounds/bump.wav index 804926311..f57cb5d3a 100644 Binary files a/P3D/Content/Sounds/bump.wav and b/P3D/Content/Sounds/bump.wav differ diff --git a/P3D/Content/Sounds/buy.wav b/P3D/Content/Sounds/buy.wav index 7df1cecf8..f5c6e4fb3 100644 Binary files a/P3D/Content/Sounds/buy.wav and b/P3D/Content/Sounds/buy.wav differ diff --git a/P3D/Content/Sounds/destroy.wav b/P3D/Content/Sounds/destroy.wav index d4649fb00..0ea67e03f 100644 Binary files a/P3D/Content/Sounds/destroy.wav and b/P3D/Content/Sounds/destroy.wav differ diff --git a/P3D/Content/Sounds/egg_hatch.wav b/P3D/Content/Sounds/egg_hatch.wav index 47b695e87..99cd272de 100644 Binary files a/P3D/Content/Sounds/egg_hatch.wav and b/P3D/Content/Sounds/egg_hatch.wav differ diff --git a/P3D/Content/Sounds/enter.wav b/P3D/Content/Sounds/enter.wav index 17f30b60f..4bddb2d75 100644 Binary files a/P3D/Content/Sounds/enter.wav and b/P3D/Content/Sounds/enter.wav differ diff --git a/P3D/Content/Sounds/ice_break.wav b/P3D/Content/Sounds/ice_break.wav index 3634accf6..f3c18689b 100644 Binary files a/P3D/Content/Sounds/ice_break.wav and b/P3D/Content/Sounds/ice_break.wav differ diff --git a/P3D/Content/Sounds/ice_crack.wav b/P3D/Content/Sounds/ice_crack.wav index d8a99478e..4e0a4af59 100644 Binary files a/P3D/Content/Sounds/ice_crack.wav and b/P3D/Content/Sounds/ice_crack.wav differ diff --git a/P3D/Content/Sounds/itemfinder.wav b/P3D/Content/Sounds/itemfinder.wav index 53d6e51d0..7275af126 100644 Binary files a/P3D/Content/Sounds/itemfinder.wav and b/P3D/Content/Sounds/itemfinder.wav differ diff --git a/P3D/Content/Sounds/jump_ledge.wav b/P3D/Content/Sounds/jump_ledge.wav index 43864fee3..180ff7702 100644 Binary files a/P3D/Content/Sounds/jump_ledge.wav and b/P3D/Content/Sounds/jump_ledge.wav differ diff --git a/P3D/Content/Sounds/menu_open.wav b/P3D/Content/Sounds/menu_open.wav index bb8cff25d..f3c05a363 100644 Binary files a/P3D/Content/Sounds/menu_open.wav and b/P3D/Content/Sounds/menu_open.wav differ diff --git a/P3D/Content/Sounds/pickup.wav b/P3D/Content/Sounds/pickup.wav index 201741ca3..ff14e4aa8 100644 Binary files a/P3D/Content/Sounds/pickup.wav and b/P3D/Content/Sounds/pickup.wav differ diff --git a/P3D/Content/Sounds/pokeball_set.wav b/P3D/Content/Sounds/pokeball_set.wav index b21424d7e..70dda3684 100644 Binary files a/P3D/Content/Sounds/pokeball_set.wav and b/P3D/Content/Sounds/pokeball_set.wav differ diff --git a/P3D/Content/Sounds/select.wav b/P3D/Content/Sounds/select.wav index bf7df21a4..a53285b89 100644 Binary files a/P3D/Content/Sounds/select.wav and b/P3D/Content/Sounds/select.wav differ diff --git a/P3D/Content/Sounds/shutter.wav b/P3D/Content/Sounds/shutter.wav index 766fc877d..67d11641c 100644 Binary files a/P3D/Content/Sounds/shutter.wav and b/P3D/Content/Sounds/shutter.wav differ diff --git a/P3D/Content/Sounds/success.wav b/P3D/Content/Sounds/success.wav index 7df9b0bbe..1d4167d67 100644 Binary files a/P3D/Content/Sounds/success.wav and b/P3D/Content/Sounds/success.wav differ diff --git a/P3D/Content/Sounds/success_small.wav b/P3D/Content/Sounds/success_small.wav index 4a487b3fa..7d8916894 100644 Binary files a/P3D/Content/Sounds/success_small.wav and b/P3D/Content/Sounds/success_small.wav differ diff --git a/P3D/Content/Sounds/teleport.wav b/P3D/Content/Sounds/teleport.wav index c77f8c811..4b3525a66 100644 Binary files a/P3D/Content/Sounds/teleport.wav and b/P3D/Content/Sounds/teleport.wav differ diff --git a/P3D/Content/Sounds/trhq_alarm.wav b/P3D/Content/Sounds/trhq_alarm.wav index bec39140b..b4ab5ed53 100644 Binary files a/P3D/Content/Sounds/trhq_alarm.wav and b/P3D/Content/Sounds/trhq_alarm.wav differ diff --git a/P3D/Entites/Enviroment/HoleBlock.vb b/P3D/Entites/Enviroment/HoleBlock.vb index 27236e609..62440039e 100644 --- a/P3D/Entites/Enviroment/HoleBlock.vb +++ b/P3D/Entites/Enviroment/HoleBlock.vb @@ -64,13 +64,21 @@ Dim WarpTurns As Integer = CInt(Me.AdditionalValue.GetSplit(5)) Dim FallSpeed As String = "2.25" If Me.AdditionalValue.Split(",").Count >= 7 Then - FallSpeed = Me.AdditionalValue.GetSplit(6) + If Me.AdditionalValue.GetSplit(6) <> "" Then + FallSpeed = Me.AdditionalValue.GetSplit(6) + End If + End If + Dim CameraFollows As Boolean = False + If Me.AdditionalValue.Split(",").Count >= 8 Then + If Me.AdditionalValue.GetSplit(7) <> "" Then + CameraFollows = CBool(Me.AdditionalValue.GetSplit(7)) + End If End If - If Me.AdditionalValue.Split(",").Count >= 8 Then + If Me.AdditionalValue.Split(",").Count >= 9 Then Dim validRotations As New List(Of Integer) - Dim rotationData() As String = Me.AdditionalValue.GetSplit(7, ",").Split(CChar("|")) + Dim rotationData() As String = Me.AdditionalValue.GetSplit(8, ",").Split(CChar("|")) For Each Element As String In rotationData validRotations.Add(CInt(Element)) Next @@ -98,26 +106,37 @@ s &= "@Player.SetMovement(0,-1,0)" & Environment.NewLine & "@Player.DoWalkAnimation(0)" & Environment.NewLine & + "@Sound.Play(Drop_Fall)" & Environment.NewLine & "@Player.SetSpeed(" & FallSpeed & ")" & Environment.NewLine & "@Player.Move(2)" & Environment.NewLine & "@Player.SetOpacity(0)" & Environment.NewLine & "@Player.ResetMovement" & Environment.NewLine & "@Level.Wait(30)" & Environment.NewLine & - "@Screen.FadeOut(35)" & Environment.NewLine & - "@Player.Warp(" & Destination & "," & CStr(WarpPosition.X).Replace(GameController.DecSeparator, ".") & "," & CStr(WarpPosition.Y).Replace(GameController.DecSeparator, ".") & "," & CStr(WarpPosition.Z).Replace(GameController.DecSeparator, ".") & "," & WarpTurns & ")" & Environment.NewLine & + "@Screen.FadeOut(35)" & Environment.NewLine + If CameraFollows = False Then + s &= "@Player.Warp(" & Destination & "," & CStr(WarpPosition.X).Replace(GameController.DecSeparator, ".") & "," & CStr(WarpPosition.Y).Replace(GameController.DecSeparator, ".") & "," & CStr(WarpPosition.Z).Replace(GameController.DecSeparator, ".") & "," & WarpTurns & ",3)" & Environment.NewLine & "@Level.Update" & Environment.NewLine & "@Camera.Defix" & Environment.NewLine & "@Camera.Reset" & Environment.NewLine & "@Camera.SetYaw(0)" & Environment.NewLine & "@Camera.Update" & Environment.NewLine & "@Camera.Fix" & Environment.NewLine & - "@Player.Warp(" & CStr(WarpPosition.X).Replace(GameController.DecSeparator, ".") & "," & CStr(WarpPosition.Y + DropDistance).Replace(GameController.DecSeparator, ".") & "," & CStr(WarpPosition.Z).Replace(GameController.DecSeparator, ".") & ")" & Environment.NewLine & - "@Player.SetOpacity(1)" & Environment.NewLine & + "@Player.Warp(" & CStr(WarpPosition.X).Replace(GameController.DecSeparator, ".") & "," & CStr(WarpPosition.Y + DropDistance).Replace(GameController.DecSeparator, ".") & "," & CStr(WarpPosition.Z).Replace(GameController.DecSeparator, ".") & ")" & Environment.NewLine + Else + s &= "@Player.Warp(" & Destination & "," & CStr(WarpPosition.X).Replace(GameController.DecSeparator, ".") & "," & CStr(WarpPosition.Y + DropDistance).Replace(GameController.DecSeparator, ".") & "," & CStr(WarpPosition.Z).Replace(GameController.DecSeparator, ".") & "," & WarpTurns & ",3)" & Environment.NewLine & + "@Level.Update" & Environment.NewLine & + "@Camera.Defix" & Environment.NewLine & + "@Camera.Reset" & Environment.NewLine & + "@Camera.SetYaw(0)" & Environment.NewLine & + "@Camera.Update" & Environment.NewLine + End If + s &= "@Player.SetOpacity(1)" & Environment.NewLine & "@Level.Update" & Environment.NewLine & "@Player.SetMovement(0,-1,0)" & Environment.NewLine & "@Player.SetSpeed(" & FallSpeed & ")" & Environment.NewLine & "@Screen.FadeIn(35)" & Environment.NewLine & "@Player.Move(" & DropDistance & ")" & Environment.NewLine & + "@Sound.Play(Drop_Land)" & Environment.NewLine & "@Level.Update" & Environment.NewLine & "@Camera.Update" & Environment.NewLine & "@Camera.Defix" & Environment.NewLine & diff --git a/P3D/Entites/Enviroment/WarpBlock.vb b/P3D/Entites/Enviroment/WarpBlock.vb index 4a9780af9..69717d247 100644 --- a/P3D/Entites/Enviroment/WarpBlock.vb +++ b/P3D/Entites/Enviroment/WarpBlock.vb @@ -27,17 +27,34 @@ End If Next If c >= 5 Then - Dim validRotations As New List(Of Integer) + If link.GetSplit(5, ",") <> "" Then + Dim validRotations As New List(Of Integer) - Dim rotationData() As String = link.GetSplit(5, ",").Split(CChar("|")) - For Each Element As String In rotationData - validRotations.Add(CInt(Element)) - Next - If validRotations.Contains(Screen.Camera.GetPlayerFacingDirection()) = False Then - Return True + Dim rotationData() As String = link.GetSplit(5, ",").Split(CChar("|")) + For Each Element As String In rotationData + validRotations.Add(CInt(Element)) + Next + If validRotations.Contains(Screen.Camera.GetPlayerFacingDirection()) = False Then + Return True + End If End If End If - + Dim WarpSoundName As String = "Warp_Exit" + If c >= 6 Then + Dim WarpSoundData As Integer = CInt(link.GetSplit(6)) + Select Case WarpSoundData + Case 0 + WarpSoundName = "Warp_Exit" + Case 1 + WarpSoundName = "Warp_Door" + Case 2 + WarpSoundName = "Warp_Ladder" + Case 3 + WarpSoundName = "" + Case Else + WarpSoundName = "Warp_Exit" + End Select + End If If System.IO.File.Exists(GameController.GamePath & "\" & GameModeManager.ActiveGameMode.MapPath & destination) = True Or System.IO.File.Exists(GameController.GamePath & "\Content\Data\maps\" & destination) = True Then If MapViewMode = False Then Screen.Level.WarpData.WarpDestination = Me.AdditionalValue.GetSplit(0) @@ -46,6 +63,13 @@ Screen.Level.WarpData.DoWarpInNextTick = True Screen.Level.WarpData.CorrectCameraYaw = Screen.Camera.Yaw Screen.Level.WarpData.IsWarpBlock = True + If GameModeManager.ContentFileExists("Sounds\" & WarpSoundName & ".wav") = True Or GameModeManager.ContentFileExists("Sounds\" & WarpSoundName & ".xnb") = True Then + Screen.Level.WarpData.WarpSound = WarpSoundName + ElseIf WarpSoundName = "" Then + Screen.Level.WarpData.WarpSound = Nothing + Else + Screen.Level.WarpData.WarpSound = "Warp_Exit" + End If Logger.Debug("Lock Camera") CType(Screen.Camera, OverworldCamera).YawLocked = True Else diff --git a/P3D/P3D.vbproj b/P3D/P3D.vbproj index 3a31d613d..2640960ee 100644 --- a/P3D/P3D.vbproj +++ b/P3D/P3D.vbproj @@ -18407,12 +18407,27 @@ PreserveNewest + + PreserveNewest + + + PreserveNewest + PreserveNewest PreserveNewest + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + PreserveNewest @@ -29725,9 +29740,6 @@ PreserveNewest - - PreserveNewest - PreserveNewest diff --git a/P3D/Player/Player.vb b/P3D/Player/Player.vb index bfb85420f..c4ea0ddc5 100644 --- a/P3D/Player/Player.vb +++ b/P3D/Player/Player.vb @@ -453,7 +453,7 @@ Public RunMode As Boolean = True Public RunToggled As Boolean = False - Public DoWalkAnimation As Boolean = False + Public DoWalkAnimation As Boolean = True Public Structure Temp Public Shared PokemonScreenIndex As Integer = 0 diff --git a/P3D/Screens/MainMenu/PauseScreen.vb b/P3D/Screens/MainMenu/PauseScreen.vb index 2b577a00f..bc5884884 100644 --- a/P3D/Screens/MainMenu/PauseScreen.vb +++ b/P3D/Screens/MainMenu/PauseScreen.vb @@ -319,6 +319,7 @@ TextureManager.TextureRectList.Clear() Whirlpool.LoadedWaterTemp = False Core.Player.RunToggled = False + Core.Player.DoWalkAnimation = True Core.SetScreen(New PressStartScreen()) Core.Player.loadedSave = False End Sub diff --git a/P3D/World/ActionScript/V2/ScriptCommands/DoOverworldPokemon.vb b/P3D/World/ActionScript/V2/ScriptCommands/DoOverworldPokemon.vb index cd8c59bab..111a38e8a 100644 --- a/P3D/World/ActionScript/V2/ScriptCommands/DoOverworldPokemon.vb +++ b/P3D/World/ActionScript/V2/ScriptCommands/DoOverworldPokemon.vb @@ -20,6 +20,8 @@ Case "toggle" Screen.Level.OverworldPokemon.Visible = Not Screen.Level.OverworldPokemon.Visible IsReady = True + Case Else + IsReady = True End Select End Sub diff --git a/P3D/World/ActionScript/V2/ScriptCommands/DoPlayer.vb b/P3D/World/ActionScript/V2/ScriptCommands/DoPlayer.vb index a63393786..ecbc4e254 100644 --- a/P3D/World/ActionScript/V2/ScriptCommands/DoPlayer.vb +++ b/P3D/World/ActionScript/V2/ScriptCommands/DoPlayer.vb @@ -189,22 +189,92 @@ Dim cPosition As Vector3 = Screen.Camera.Position Select Case commas - Case 4 + Case 5 Screen.Level.WarpData.WarpDestination = argument.GetSplit(0) Screen.Level.WarpData.WarpPosition = New Vector3(sng(argument.GetSplit(1).Replace("~", CStr(cPosition.X)).Replace(".", GameController.DecSeparator)), sng(argument.GetSplit(2).Replace("~", CStr(cPosition.Y)).Replace(".", GameController.DecSeparator)), sng(argument.GetSplit(3).Replace("~", CStr(cPosition.Z)).Replace(".", GameController.DecSeparator))) Screen.Level.WarpData.WarpRotations = int(argument.GetSplit(4)) + Dim WarpSoundData As Integer = CInt(argument.GetSplit(5)) + Select Case WarpSoundData + Case 0 + Screen.Level.WarpData.WarpSound = "Warp_Exit" + Case 1 + Screen.Level.WarpData.WarpSound = "Warp_Door" + Case 2 + Screen.Level.WarpData.WarpSound = "Warp_Ladder" + Case 3 + Screen.Level.WarpData.WarpSound = "" + Case Else + Screen.Level.WarpData.WarpSound = "Warp_Exit" + End Select Screen.Level.WarpData.DoWarpInNextTick = True Screen.Level.WarpData.CorrectCameraYaw = Screen.Camera.Yaw + Case 4 + If argument.GetSplit(0).Contains(".dat") = False Then + Screen.Level.WarpData.WarpDestination = Screen.Level.LevelFile + Screen.Level.WarpData.WarpPosition = New Vector3(sng(argument.GetSplit(0).Replace("~", CStr(cPosition.X)).Replace(".", GameController.DecSeparator)), + sng(argument.GetSplit(1).Replace("~", CStr(cPosition.Y)).Replace(".", GameController.DecSeparator)), + sng(argument.GetSplit(2).Replace("~", CStr(cPosition.Z)).Replace(".", GameController.DecSeparator))) + Screen.Level.WarpData.WarpRotations = int(argument.GetSplit(3)) + Dim WarpSoundData As Integer = CInt(argument.GetSplit(4)) + Select Case WarpSoundData + Case 0 + Screen.Level.WarpData.WarpSound = "Warp_Exit" + Case 1 + Screen.Level.WarpData.WarpSound = "Warp_Door" + Case 2 + Screen.Level.WarpData.WarpSound = "Warp_Ladder" + Case 3 + Screen.Level.WarpData.WarpSound = "" + Case Else + Screen.Level.WarpData.WarpSound = "Warp_Exit" + End Select + + Screen.Level.WarpData.DoWarpInNextTick = True + Screen.Level.WarpData.CorrectCameraYaw = Screen.Camera.Yaw + Else + Screen.Level.WarpData.WarpDestination = argument.GetSplit(0) + Screen.Level.WarpData.WarpPosition = New Vector3(sng(argument.GetSplit(1).Replace("~", CStr(cPosition.X)).Replace(".", GameController.DecSeparator)), + sng(argument.GetSplit(2).Replace("~", CStr(cPosition.Y)).Replace(".", GameController.DecSeparator)), + sng(argument.GetSplit(3).Replace("~", CStr(cPosition.Z)).Replace(".", GameController.DecSeparator))) + Screen.Level.WarpData.WarpRotations = int(argument.GetSplit(4)) + Screen.Level.WarpData.WarpSound = "Warp_Exit" + Screen.Level.WarpData.DoWarpInNextTick = True + Screen.Level.WarpData.CorrectCameraYaw = Screen.Camera.Yaw + End If Case 3 - Screen.Level.WarpData.WarpDestination = argument.GetSplit(0) - Screen.Level.WarpData.WarpPosition = New Vector3(sng(argument.GetSplit(1).Replace("~", CStr(cPosition.X)).Replace(".", GameController.DecSeparator)), - sng(argument.GetSplit(2).Replace("~", CStr(cPosition.Y)).Replace(".", GameController.DecSeparator)), - sng(argument.GetSplit(3).Replace("~", CStr(cPosition.Z)).Replace(".", GameController.DecSeparator))) - Screen.Level.WarpData.WarpRotations = 0 - Screen.Level.WarpData.DoWarpInNextTick = True - Screen.Level.WarpData.CorrectCameraYaw = Screen.Camera.Yaw + If argument.GetSplit(0).Contains(".dat") = False Then + Screen.Level.WarpData.WarpDestination = Screen.Level.LevelFile + Screen.Level.WarpData.WarpPosition = New Vector3(sng(argument.GetSplit(0).Replace("~", CStr(cPosition.X)).Replace(".", GameController.DecSeparator)), + sng(argument.GetSplit(1).Replace("~", CStr(cPosition.Y)).Replace(".", GameController.DecSeparator)), + sng(argument.GetSplit(2).Replace("~", CStr(cPosition.Z)).Replace(".", GameController.DecSeparator))) + Screen.Level.WarpData.WarpRotations = 0 + Dim WarpSoundData As Integer = CInt(argument.GetSplit(3)) + Select Case WarpSoundData + Case 0 + Screen.Level.WarpData.WarpSound = "Warp_Exit" + Case 1 + Screen.Level.WarpData.WarpSound = "Warp_Door" + Case 2 + Screen.Level.WarpData.WarpSound = "Warp_Ladder" + Case 3 + Screen.Level.WarpData.WarpSound = "" + Case Else + Screen.Level.WarpData.WarpSound = "Warp_Exit" + End Select + Screen.Level.WarpData.DoWarpInNextTick = True + Screen.Level.WarpData.CorrectCameraYaw = Screen.Camera.Yaw + Else + Screen.Level.WarpData.WarpDestination = argument.GetSplit(0) + Screen.Level.WarpData.WarpPosition = New Vector3(sng(argument.GetSplit(1).Replace("~", CStr(cPosition.X)).Replace(".", GameController.DecSeparator)), + sng(argument.GetSplit(2).Replace("~", CStr(cPosition.Y)).Replace(".", GameController.DecSeparator)), + sng(argument.GetSplit(3).Replace("~", CStr(cPosition.Z)).Replace(".", GameController.DecSeparator))) + Screen.Level.WarpData.WarpRotations = 0 + Screen.Level.WarpData.WarpSound = "Warp_Exit" + Screen.Level.WarpData.DoWarpInNextTick = True + Screen.Level.WarpData.CorrectCameraYaw = Screen.Camera.Yaw + End If Case 2 Screen.Camera.Position = New Vector3(sng(argument.GetSplit(0).Replace("~", CStr(cPosition.X)).Replace(".", GameController.DecSeparator)), sng(argument.GetSplit(1).Replace("~", CStr(cPosition.Y)).Replace(".", GameController.DecSeparator)), @@ -213,6 +283,7 @@ Screen.Level.WarpData.WarpDestination = argument Screen.Level.WarpData.WarpPosition = Screen.Camera.Position Screen.Level.WarpData.WarpRotations = 0 + Screen.Level.WarpData.WarpSound = "Warp_Exit" Screen.Level.WarpData.DoWarpInNextTick = True Screen.Level.WarpData.CorrectCameraYaw = Screen.Camera.Yaw End Select @@ -380,6 +451,19 @@ Dim doWalkAnimation As Boolean = CBool(argument) Core.Player.DoWalkAnimation = doWalkAnimation IsReady = True + Case "removeitemdata" + Dim IDs() As String = Core.Player.ItemData.Split(CChar(",")) + Dim LevelPath As String = argument.GetSplit(0, ",") + Dim LevelItemIndex As String = argument.GetSplit(1, ",") + + If IDs.Contains((LevelPath.ToLower() & "|" & LevelItemIndex).ToLower()) = True Then + If Core.Player.ItemData.Split(",").Count = 1 Then + Core.Player.ItemData = "" + Else + Core.Player.ItemData = Core.Player.ItemData.Replace(("," & (LevelPath.ToLower() & "|" & LevelItemIndex).ToLower()).ToString, "") + End If + End If + IsReady = True Case "quitgame" 'Reset VoltorbFlipScreen's Variables VoltorbFlip.VoltorbFlipScreen.CurrentLevel = 1 diff --git a/P3D/World/ActionScript/V2/ScriptLibrary.vb b/P3D/World/ActionScript/V2/ScriptLibrary.vb index 50b060d18..a6316b8d6 100644 --- a/P3D/World/ActionScript/V2/ScriptLibrary.vb +++ b/P3D/World/ActionScript/V2/ScriptLibrary.vb @@ -512,7 +512,8 @@ Namespace ScriptVersion2 New ScriptArgument("z", ScriptArgument.ArgumentTypes.Sng), New ScriptArgument("facing", ScriptArgument.ArgumentTypes.Int)}.ToList(), "Warps the player to a new location on a new map and changes the facing afterwards. To get relative coordinates, enter a ""~"".")) r(New ScriptCommand("player", "stopmovement", "Stops the player movement.")) - r(New ScriptCommand("player", "addmoney", {New ScriptArgument("amount", ScriptArgument.ArgumentTypes.Int)}.ToList(), "Adds the given amount to the player's money.")) + r(New ScriptCommand("player", "AddMoney", {New ScriptArgument("amount", ScriptArgument.ArgumentTypes.Int)}.ToList(), "Adds the given amount to the player's money.")) + r(New ScriptCommand("player", "RemoveMoney", {New ScriptArgument("amount", ScriptArgument.ArgumentTypes.Int)}.ToList(), "Removes the given amount from the player's money.")) r(New ScriptCommand("player", "addcoins", {New ScriptArgument("amount", ScriptArgument.ArgumentTypes.Int)}.ToList(), "Adds the given amount to the player's coins.")) r(New ScriptCommand("player", "setspeed", {New ScriptArgument("speed", ScriptArgument.ArgumentTypes.Sng)}.ToList(), "Sets the speed of the player. The default is ""1"".")) r(New ScriptCommand("player", "resetspeed", "Resets the walking speed of the player to the default speed, which is ""1"".")) @@ -520,6 +521,8 @@ Namespace ScriptVersion2 New ScriptArgument("y", ScriptArgument.ArgumentTypes.Int), New ScriptArgument("z", ScriptArgument.ArgumentTypes.Int)}.ToList(), "Sets the direction the player will move next regardless of facing.")) r(New ScriptCommand("player", "resetmovement", "Resets the player movement to the default movement directions.")) + r(New ScriptCommand("player", "PreventMovement", "Makes the player unable to move, while still keeping control over the menu, interactions etc.")) + r(New ScriptCommand("player", "AllowMovement", "Gives the player back their ability to move after using @Player.PreventMovement.")) r(New ScriptCommand("player", "getbadge", {New ScriptArgument("badgeID", ScriptArgument.ArgumentTypes.Int)}.ToList(), "Adds the given Badge to the player's Badges and displays a message.")) r(New ScriptCommand("player", "removebadge", {New ScriptArgument("badgeID", ScriptArgument.ArgumentTypes.Int)}.ToList(), "Removes the given Badge from the player's Badges.")) r(New ScriptCommand("player", "addbadge", {New ScriptArgument("badgeID", ScriptArgument.ArgumentTypes.Int)}.ToList(), "Adds the given Badge from the player's Badges.")) @@ -535,6 +538,7 @@ Namespace ScriptVersion2 r(New ScriptCommand("player", "setopacity", {New ScriptArgument("opacity", ScriptArgument.ArgumentTypes.Sng)}.ToList(), "Sets the player entity's opacity.")) r(New ScriptCommand("player", "QuitGame", {New ScriptArgument("doFade", ScriptArgument.ArgumentTypes.Bool, True, "")}.ToList(), "Quits the game and goes back to the Main Menu (with optionally a fade out and in).")) r(New ScriptCommand("player", "DoWalkAnimation", {New ScriptArgument("walkAnimation", ScriptArgument.ArgumentTypes.Bool)}.ToList(), "Enables or disables the player's walking animation when walking or during a @player.move command.")) + r(New ScriptCommand("player", "RemoveItemData", {New ScriptArgument("levelPath", ScriptArgument.ArgumentTypes.Str), New ScriptArgument("itemIndex", ScriptArgument.ArgumentTypes.Str)}.ToList(), "Makes the specified item index of the specified map spawn again after it has been found.")) ' Constructs: r(New ScriptCommand("player", "position", "sngarr", {New ScriptArgument("coordinate", ScriptArgument.ArgumentTypes.StrArr, {"x", "y", "z"}, True, "")}.ToList(), "Returns the position of the player. The normal coordinate combination is ""X,Y,Z"".", ",", True)) diff --git a/P3D/World/Level.vb b/P3D/World/Level.vb index d791c4372..6e7f5fb31 100644 --- a/P3D/World/Level.vb +++ b/P3D/World/Level.vb @@ -712,6 +712,11 @@ Public Class Level ''' If the warp action got triggered by a warp block. ''' Public IsWarpBlock As Boolean + + ''' + ''' What sound effect to trigger when warping + ''' + Public WarpSound As String End Structure ''' @@ -1159,13 +1164,15 @@ Public Class Level ' Because of the map change, Roaming Pokémon are moving to their next location on the world map: RoamingPokemon.ShiftRoamingPokemon(-1) - ' Check if the enter sound should be played by checking if CanDig or CanFly properties are different from the last map: - If tempProperties <> Me.CanDig.ToString() & "," & Me.CanFly.ToString() Then - SoundManager.PlaySound("enter", False) - ElseIf tempProperties = "True,False" And Me.CanDig = True And Me.CanFly = False Then - SoundManager.PlaySound("enter", False) - ElseIf tempProperties = "False,False" And Me.CanDig = False And Me.CanFly = False Then - SoundManager.PlaySound("enter", False) + ' Check if the "warp" sound should be played by checking if CanDig or CanFly properties are different from the last map: + If Not Me.WarpData.WarpSound = Nothing And Not Me.WarpData.WarpSound = "" Then + If tempProperties <> Me.CanDig.ToString() & "," & Me.CanFly.ToString() Then + SoundManager.PlaySound(Me.WarpData.WarpSound, False) + ElseIf tempProperties = "True,False" And Me.CanDig = True And Me.CanFly = False Then + SoundManager.PlaySound(Me.WarpData.WarpSound, False) + ElseIf tempProperties = "False,False" And Me.CanDig = False And Me.CanFly = False Then + SoundManager.PlaySound(Me.WarpData.WarpSound, False) + End If End If ' Unlock the yaw on the camera: