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: