diff --git a/CMakeLists.txt b/CMakeLists.txt index 58c42096e..749008c5d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1554,12 +1554,11 @@ add_custom_target(setup set(CPACK_PACKAGE_NAME "openclonk") set(CPACK_PACKAGE_VENDOR "${C4PROJECT_URL}") set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "OpenClonk - A game mix out of tactic, strategy and Jump & Run") -set(CPACK_PACKAGE_VERSION "${C4XVER1}.${C4XVER2}.${C4XVER3}") +set(CPACK_PACKAGE_VERSION "${C4XVER1}.${C4XVER2}") set(CPACK_PACKAGE_VERSION_MAJOR "${C4XVER1}") set(CPACK_PACKAGE_VERSION_MINOR "${C4XVER2}") -set(CPACK_PACKAGE_VERSION_PATCH "${C4XVER3}") -set(CPACK_PACKAGE_FILE_NAME "openclonk-${C4XVER1}.${C4XVER2}.${C4XVER3}") -set(CPACK_SOURCE_PACKAGE_FILE_NAME "openclonk-src-${C4XVER1}.${C4XVER2}.${C4XVER3}") +set(CPACK_PACKAGE_FILE_NAME "openclonk-${C4XVER1}.${C4XVER2}") +set(CPACK_SOURCE_PACKAGE_FILE_NAME "openclonk-src-${C4XVER1}.${C4XVER2}") set(CPACK_SOURCE_GENERATOR "TGZ;ZIP") # Somebody who uses Debian/Ubuntu should set this #set(CPACK_DEBIAN_PACKAGE_DEPENDS "libc6, libgcc1, libx11, libXrandr, libXpm, libGLEW, libGL, libpng, libSDL-1.2, libSDL_mixer-1.2, gtk2, libjpeg, zlib") diff --git a/Version.txt b/Version.txt index d471ed8cc..22a75857d 100644 --- a/Version.txt +++ b/Version.txt @@ -11,9 +11,8 @@ SET(C4ENGINENAME "OpenClonk") SET(C4ENGINENICK "openclonk") SET(C4ENGINEID "${C4PROJECT_TLD}.${C4PROJECT_DOMAIN}.${C4ENGINENICK}") -SET(C4XVER1 5) -SET(C4XVER2 5) -SET(C4XVER3 1) +SET(C4XVER1 6) +SET(C4XVER2 0) # C4VERSIONBUILDNAME should be witty and somewhat frequently changing # for alpha and beta releases, and meaningful and stable for stable releases. @@ -46,7 +45,7 @@ SET(C4COPYRIGHT_YEAR ${YEARFIXED}) SET(C4ENGINECAPTION "${C4ENGINENAME}{$C4VERSIONBUILDNAME}") set(C4ENGINEINFO "${C4ENGINENAME}") -set(C4VERSION "${C4XVER1}.${C4XVER2}.${C4XVER3}") +set(C4VERSION "${C4XVER1}.${C4XVER2}") if(C4XVER4 LESS 10) set(C4VERSION "${C4VERSION} [00${C4XVER4}]") diff --git a/docs/sdk/script/fn/AttachMesh.xml b/docs/sdk/script/fn/AttachMesh.xml index 1abd24222..bca06b47f 100644 --- a/docs/sdk/script/fn/AttachMesh.xml +++ b/docs/sdk/script/fn/AttachMesh.xml @@ -45,6 +45,10 @@ AM_DrawBefore Normally the mesh of the object itself is drawn first and afterwards the attached mesh. If this flag is present then the attached mesh is drawn before the object's mesh is drawn. Note that normally this makes no difference since a Z buffer is used to make sure the drawing order is correct. However if one or both of the meshes make use of alpha blending then the drawing order becomes relevant so that a mesh is not hidden behind otherwise (partly) translucent parts of the other mesh. + + + AM_MatchSkeleton + Normally the attached mesh uses its own animations. If this flag is set, then the attached mesh uses the animation data of the parent mesh for all bones that have the same name as a bone in the parent mesh skeleton. diff --git a/docs/sdk/script/fn/GetPXSCount.xml b/docs/sdk/script/fn/GetPXSCount.xml new file mode 100644 index 000000000..da659f003 --- /dev/null +++ b/docs/sdk/script/fn/GetPXSCount.xml @@ -0,0 +1,61 @@ + + + + + + GetPXSCount + Landscape + Material + 5.2 OC + + int + + + int + material + Index of material. If nil or -1, any material is counted. + + + + int + x + Left side of search rectangle. Offset in local calls. Set to nil to search the whole map. + + + + int + y + Top side of search rectangle. Offset in local calls. + + + + int + wdt + Width of search rectangle. Right border is not included in search. + + + + int + wdt + Height of search rectangle. Bottom border is not included in search. + + + + + Determines how many loose pixels (PXS) are present of a given material in a given rectangle. + + + if(GetPXSCount(Material("Snow"), -100,-100,200,100) > 5) Message("It is snowing!"); + Part of a clonk script: if snow is found around the clonk, he shows a message above his head. + + + + Material + CastPXS + InsertMaterial + GetMaterial + + + Sven22014-12 + diff --git a/docs/sdk/script/fn/Music.xml b/docs/sdk/script/fn/Music.xml index 2546dd378..1e88a2cc3 100644 --- a/docs/sdk/script/fn/Music.xml +++ b/docs/sdk/script/fn/Music.xml @@ -22,6 +22,12 @@ If 1, the specified track will be looped forever. + + int + fadetime_ms + Fading time between any currently playing piece and the newly selected song. Ignored if both are the same. Set to zero to avoid fading. + + Plays a music track. The corresponding music file must be available in the active music group. If the loaded scenario contains music files, the scenario file will be the music group. Otherwise, the global file Music.ocg will be used. diff --git a/docs/sdk/script/fn/SetPlayList.xml b/docs/sdk/script/fn/SetPlayList.xml index f8cdf3731..7130c39f4 100644 --- a/docs/sdk/script/fn/SetPlayList.xml +++ b/docs/sdk/script/fn/SetPlayList.xml @@ -13,7 +13,7 @@ string playlist - List of pieces of music to be played. The individual file names are separated with semicolons (";"). Wildcards are expanded. If the parameter is left out, the standard playlist is restored. + List of pieces of music to be played. The individual file and category names are separated with semicolons (";"). Wildcards are expanded. If the parameter is left out, the standard playlist is restored. @@ -22,9 +22,22 @@ The playlist is changed only on clients where the player with this player number is local. If left out or NO_OWNER, the playlist is changed for all clients. If the player number is invalid, no playlists are changed. + + bool + force_change + If true and the new playlist does not contain the piece currently playing, a new song is selected and played. + + + + int + fadetime_ms + Fade time to the new piece if force_change is true and the current song is changed in response to this call. Set to zero to change music instantly. + + Sets the play list of pieces of music to be played in random order, if music is activated. The actual number of pieces of music in the playlist is returned, or 0 in network mode. + Pieces are identified either by matching file name or any matching category. Categories are only available for .ogg files and may be set as a semicolon-delimited list in the comment field. Matching is case-insensitive, but case insensitive matching does not work for extended UTF8 characters. SetPlayList does not activate music playback when the player has turned the music off. If the player enables music, the new playlist takes effect. SetPlayList("*.*") is not identical to SetPlayList(). The former activates all music, the latter only those not starting with "@", the standard behavior. Music diff --git a/planet/Arena.ocf/FrozenFortress.ocs/Flag.ocd/DefCore.txt b/planet/Arena.ocf/FrozenFortress.ocs/Flag.ocd/DefCore.txt index 09f978a3f..fd82cd469 100644 --- a/planet/Arena.ocf/FrozenFortress.ocs/Flag.ocd/DefCore.txt +++ b/planet/Arena.ocf/FrozenFortress.ocs/Flag.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Goal_FlagMeshes -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=30 Height=40 diff --git a/planet/Arena.ocf/FrozenFortress.ocs/Scenario.txt b/planet/Arena.ocf/FrozenFortress.ocs/Scenario.txt index 177c1f827..502569428 100644 --- a/planet/Arena.ocf/FrozenFortress.ocs/Scenario.txt +++ b/planet/Arena.ocf/FrozenFortress.ocs/Scenario.txt @@ -1,7 +1,7 @@ [Head] Icon=13 Title=FrozenFortress -Version=5,2,0,1 +Version=6,0 MinPlayer=2 Difficulty=80 diff --git a/planet/Arena.ocf/FrozenFortress.ocs/Scrolls.ocd/FrostboltScroll.ocd/DefCore.txt b/planet/Arena.ocf/FrozenFortress.ocs/Scrolls.ocd/FrostboltScroll.ocd/DefCore.txt index c23daff5d..cfffb4b0d 100644 --- a/planet/Arena.ocf/FrozenFortress.ocs/Scrolls.ocd/FrostboltScroll.ocd/DefCore.txt +++ b/planet/Arena.ocf/FrozenFortress.ocs/Scrolls.ocd/FrostboltScroll.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=FrostboltScroll -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=8 Height=8 diff --git a/planet/Arena.ocf/FrozenFortress.ocs/Scrolls.ocd/HardeningScroll.ocd/DefCore.txt b/planet/Arena.ocf/FrozenFortress.ocs/Scrolls.ocd/HardeningScroll.ocd/DefCore.txt index 0ff44d148..b16a8dc9a 100644 --- a/planet/Arena.ocf/FrozenFortress.ocs/Scrolls.ocd/HardeningScroll.ocd/DefCore.txt +++ b/planet/Arena.ocf/FrozenFortress.ocs/Scrolls.ocd/HardeningScroll.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=HardeningScroll -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=8 Height=8 diff --git a/planet/Arena.ocf/FrozenFortress.ocs/Scrolls.ocd/WindScroll.ocd/DefCore.txt b/planet/Arena.ocf/FrozenFortress.ocs/Scrolls.ocd/WindScroll.ocd/DefCore.txt index d333630e5..048136d5a 100644 --- a/planet/Arena.ocf/FrozenFortress.ocs/Scrolls.ocd/WindScroll.ocd/DefCore.txt +++ b/planet/Arena.ocf/FrozenFortress.ocs/Scrolls.ocd/WindScroll.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=WindScroll -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=8 Height=8 diff --git a/planet/Arena.ocf/Hideout.ocs/Flag.ocd/DefCore.txt b/planet/Arena.ocf/Hideout.ocs/Flag.ocd/DefCore.txt index 09f978a3f..fd82cd469 100644 --- a/planet/Arena.ocf/Hideout.ocs/Flag.ocd/DefCore.txt +++ b/planet/Arena.ocf/Hideout.ocs/Flag.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Goal_FlagMeshes -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=30 Height=40 diff --git a/planet/Arena.ocf/Hideout.ocs/LifeGem.ocd/DefCore.txt b/planet/Arena.ocf/Hideout.ocs/LifeGem.ocd/DefCore.txt index 8c51408ef..857ff4c9e 100644 --- a/planet/Arena.ocf/Hideout.ocs/LifeGem.ocd/DefCore.txt +++ b/planet/Arena.ocf/Hideout.ocs/LifeGem.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=LifeGem -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=8 Height=8 diff --git a/planet/Arena.ocf/Hideout.ocs/PyreGem.ocd/DefCore.txt b/planet/Arena.ocf/Hideout.ocs/PyreGem.ocd/DefCore.txt index 320faecee..cf8ac0b24 100644 --- a/planet/Arena.ocf/Hideout.ocs/PyreGem.ocd/DefCore.txt +++ b/planet/Arena.ocf/Hideout.ocs/PyreGem.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=PyreGem -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=8 Height=8 diff --git a/planet/Arena.ocf/Hideout.ocs/Scenario.txt b/planet/Arena.ocf/Hideout.ocs/Scenario.txt index 894a99de4..0fc6cad50 100644 --- a/planet/Arena.ocf/Hideout.ocs/Scenario.txt +++ b/planet/Arena.ocf/Hideout.ocs/Scenario.txt @@ -1,7 +1,7 @@ [Head] Icon=13 Title=Hideout -Version=5,2,0,1 +Version=6,0 MinPlayer=2 Difficulty=90 diff --git a/planet/Arena.ocf/Hideout.ocs/ShieldGem.ocd/DefCore.txt b/planet/Arena.ocf/Hideout.ocs/ShieldGem.ocd/DefCore.txt index c826406dc..ce66b3fad 100644 --- a/planet/Arena.ocf/Hideout.ocs/ShieldGem.ocd/DefCore.txt +++ b/planet/Arena.ocf/Hideout.ocs/ShieldGem.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=ShieldGem -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=8 Height=8 diff --git a/planet/Arena.ocf/Hideout.ocs/ShieldGem.ocd/SolidCrystal.ocd/DefCore.txt b/planet/Arena.ocf/Hideout.ocs/ShieldGem.ocd/SolidCrystal.ocd/DefCore.txt index 98fa5e32f..ee3d0e7a5 100644 --- a/planet/Arena.ocf/Hideout.ocs/ShieldGem.ocd/SolidCrystal.ocd/DefCore.txt +++ b/planet/Arena.ocf/Hideout.ocs/ShieldGem.ocd/SolidCrystal.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=CrystalShield -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack Width=8 Height=7 diff --git a/planet/Arena.ocf/Hideout.ocs/SlowGem.ocd/DefCore.txt b/planet/Arena.ocf/Hideout.ocs/SlowGem.ocd/DefCore.txt index 20b237ba9..3f95bc11a 100644 --- a/planet/Arena.ocf/Hideout.ocs/SlowGem.ocd/DefCore.txt +++ b/planet/Arena.ocf/Hideout.ocs/SlowGem.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=SlowGem -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=8 Height=8 diff --git a/planet/Arena.ocf/HotIce.ocs/Scenario.txt b/planet/Arena.ocf/HotIce.ocs/Scenario.txt index d4b640989..e304db96d 100644 --- a/planet/Arena.ocf/HotIce.ocs/Scenario.txt +++ b/planet/Arena.ocf/HotIce.ocs/Scenario.txt @@ -1,6 +1,6 @@ [Head] Title=HotIce -Version=5,3,2 +Version=6,0 MinPlayer=2 MaxPlayer=20 Icon=21 diff --git a/planet/Arena.ocf/MoltenMonarch.ocs/KingsWeapons.ocd/DefCore.txt b/planet/Arena.ocf/MoltenMonarch.ocs/KingsWeapons.ocd/DefCore.txt index 8e702206a..d69dbdf65 100644 --- a/planet/Arena.ocf/MoltenMonarch.ocs/KingsWeapons.ocd/DefCore.txt +++ b/planet/Arena.ocf/MoltenMonarch.ocs/KingsWeapons.ocd/DefCore.txt @@ -1,4 +1,4 @@ [DefCore] id=KingWeapons -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack diff --git a/planet/Arena.ocf/MoltenMonarch.ocs/Scenario.txt b/planet/Arena.ocf/MoltenMonarch.ocs/Scenario.txt index cd9be1b54..8e6389eec 100644 --- a/planet/Arena.ocf/MoltenMonarch.ocs/Scenario.txt +++ b/planet/Arena.ocf/MoltenMonarch.ocs/Scenario.txt @@ -1,6 +1,6 @@ [Head] Title=MoltenMonarch -Version=5,2,0,1 +Version=6,0 Icon=23 MinPlayer=2 Difficulty=70 diff --git a/planet/Arena.ocf/Overcast.ocs/Scenario.txt b/planet/Arena.ocf/Overcast.ocs/Scenario.txt index 76a3c2641..db7793b0d 100644 --- a/planet/Arena.ocf/Overcast.ocs/Scenario.txt +++ b/planet/Arena.ocf/Overcast.ocs/Scenario.txt @@ -1,6 +1,6 @@ [Head] Title=Overcast -Version=5,2,0,1 +Version=6,0 MinPlayer=2 Difficulty=50 diff --git a/planet/Arena.ocf/Overcast.ocs/Scrolls.ocd/FireballScroll.ocd/DefCore.txt b/planet/Arena.ocf/Overcast.ocs/Scrolls.ocd/FireballScroll.ocd/DefCore.txt index 7af379dff..959c4c791 100644 --- a/planet/Arena.ocf/Overcast.ocs/Scrolls.ocd/FireballScroll.ocd/DefCore.txt +++ b/planet/Arena.ocf/Overcast.ocs/Scrolls.ocd/FireballScroll.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=FireballScroll -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=8 Height=8 diff --git a/planet/Arena.ocf/Overcast.ocs/Scrolls.ocd/TeleportScroll.ocd/DefCore.txt b/planet/Arena.ocf/Overcast.ocs/Scrolls.ocd/TeleportScroll.ocd/DefCore.txt index 00901c5d3..99a3fa192 100644 --- a/planet/Arena.ocf/Overcast.ocs/Scrolls.ocd/TeleportScroll.ocd/DefCore.txt +++ b/planet/Arena.ocf/Overcast.ocs/Scrolls.ocd/TeleportScroll.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=TeleportScroll -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=8 Height=8 diff --git a/planet/Arena.ocf/Overcast.ocs/Scrolls.ocd/WindScroll.ocd/DefCore.txt b/planet/Arena.ocf/Overcast.ocs/Scrolls.ocd/WindScroll.ocd/DefCore.txt index d333630e5..048136d5a 100644 --- a/planet/Arena.ocf/Overcast.ocs/Scrolls.ocd/WindScroll.ocd/DefCore.txt +++ b/planet/Arena.ocf/Overcast.ocs/Scrolls.ocd/WindScroll.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=WindScroll -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=8 Height=8 diff --git a/planet/Arena.ocf/RockBottom.ocs/Scenario.txt b/planet/Arena.ocf/RockBottom.ocs/Scenario.txt index b8190f4fc..695f97516 100644 --- a/planet/Arena.ocf/RockBottom.ocs/Scenario.txt +++ b/planet/Arena.ocf/RockBottom.ocs/Scenario.txt @@ -1,6 +1,6 @@ [Head] Title=Bottom -Version=5,2,0,1 +Version=6,0 MinPlayer=2 Difficulty=20 diff --git a/planet/Arena.ocf/Ruins.ocs/Scenario.txt b/planet/Arena.ocf/Ruins.ocs/Scenario.txt index d687542e5..83eb1d8f6 100644 --- a/planet/Arena.ocf/Ruins.ocs/Scenario.txt +++ b/planet/Arena.ocf/Ruins.ocs/Scenario.txt @@ -1,6 +1,6 @@ [Head] Title=Ruins -Version=5,2,0,1 +Version=6,0 MinPlayer=2 Difficulty=30 diff --git a/planet/Arena.ocf/ScorchedGardens.ocs/Grass.ocd/DefCore.txt b/planet/Arena.ocf/ScorchedGardens.ocs/Grass.ocd/DefCore.txt index 016dda1b7..4dca58611 100644 --- a/planet/Arena.ocf/ScorchedGardens.ocs/Grass.ocd/DefCore.txt +++ b/planet/Arena.ocf/ScorchedGardens.ocs/Grass.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Grass -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack|C4D_Background Width=12 Height=7 diff --git a/planet/Arena.ocf/ScorchedGardens.ocs/Scenario.txt b/planet/Arena.ocf/ScorchedGardens.ocs/Scenario.txt index a2f595adb..cd64a0900 100644 --- a/planet/Arena.ocf/ScorchedGardens.ocs/Scenario.txt +++ b/planet/Arena.ocf/ScorchedGardens.ocs/Scenario.txt @@ -1,6 +1,6 @@ [Head] Title=ScorchedGardens -Version=5,2,0,1 +Version=6,0 MinPlayer=2 Difficulty=40 diff --git a/planet/Arena.ocf/ThunderousSkies.ocs/Scenario.txt b/planet/Arena.ocf/ThunderousSkies.ocs/Scenario.txt index 2ef58ec43..a63c47c92 100644 --- a/planet/Arena.ocf/ThunderousSkies.ocs/Scenario.txt +++ b/planet/Arena.ocf/ThunderousSkies.ocs/Scenario.txt @@ -1,6 +1,6 @@ [Head] Title=Overcast -Version=5,2,0,1 +Version=6,0 MinPlayer=2 Difficulty=60 diff --git a/planet/Arena.ocf/ThunderousSkies.ocs/Scrolls.ocd/FireballScroll.ocd/DefCore.txt b/planet/Arena.ocf/ThunderousSkies.ocs/Scrolls.ocd/FireballScroll.ocd/DefCore.txt index 7af379dff..959c4c791 100644 --- a/planet/Arena.ocf/ThunderousSkies.ocs/Scrolls.ocd/FireballScroll.ocd/DefCore.txt +++ b/planet/Arena.ocf/ThunderousSkies.ocs/Scrolls.ocd/FireballScroll.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=FireballScroll -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=8 Height=8 diff --git a/planet/Arena.ocf/ThunderousSkies.ocs/Scrolls.ocd/ThunderScroll.ocd/DefCore.txt b/planet/Arena.ocf/ThunderousSkies.ocs/Scrolls.ocd/ThunderScroll.ocd/DefCore.txt index c1aed6103..654b1b507 100644 --- a/planet/Arena.ocf/ThunderousSkies.ocs/Scrolls.ocd/ThunderScroll.ocd/DefCore.txt +++ b/planet/Arena.ocf/ThunderousSkies.ocs/Scrolls.ocd/ThunderScroll.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=ThunderScroll -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=8 Height=8 diff --git a/planet/Arena.ocf/ThunderousSkies.ocs/Scrolls.ocd/WindScroll.ocd/DefCore.txt b/planet/Arena.ocf/ThunderousSkies.ocs/Scrolls.ocd/WindScroll.ocd/DefCore.txt index d333630e5..048136d5a 100644 --- a/planet/Arena.ocf/ThunderousSkies.ocs/Scrolls.ocd/WindScroll.ocd/DefCore.txt +++ b/planet/Arena.ocf/ThunderousSkies.ocs/Scrolls.ocd/WindScroll.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=WindScroll -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=8 Height=8 diff --git a/planet/Arena.ocf/ThunderousSkies.ocs/TargetBalloon.ocd/DefCore.txt b/planet/Arena.ocf/ThunderousSkies.ocs/TargetBalloon.ocd/DefCore.txt index ce88b46c3..f47932c7b 100644 --- a/planet/Arena.ocf/ThunderousSkies.ocs/TargetBalloon.ocd/DefCore.txt +++ b/planet/Arena.ocf/ThunderousSkies.ocs/TargetBalloon.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=TargetBalloon -Version=4,9,8 +Version=6,0 Category=C4D_Vehicle Width=64 Height=64 diff --git a/planet/Arena.ocf/Windmill.ocs/BigBoomattack.ocd/DefCore.txt b/planet/Arena.ocf/Windmill.ocs/BigBoomattack.ocd/DefCore.txt index 53d54d75e..7930bc98b 100644 --- a/planet/Arena.ocf/Windmill.ocs/BigBoomattack.ocd/DefCore.txt +++ b/planet/Arena.ocf/Windmill.ocs/BigBoomattack.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=BigBoomattack -Version=5,2,0,1 +Version=6,0 Category=C4D_Object ContactCalls=1 Width=60 diff --git a/planet/Arena.ocf/Windmill.ocs/Boomattack.ocd/DefCore.txt b/planet/Arena.ocf/Windmill.ocs/Boomattack.ocd/DefCore.txt index 84183c3c1..60c76a634 100644 --- a/planet/Arena.ocf/Windmill.ocs/Boomattack.ocd/DefCore.txt +++ b/planet/Arena.ocf/Windmill.ocs/Boomattack.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Boomattack -Version=5,2,0,1 +Version=6,0 Category=C4D_Object ContactCalls=1 Width=15 diff --git a/planet/Arena.ocf/Windmill.ocs/SaveTheWindmills.ocd/DefCore.txt b/planet/Arena.ocf/Windmill.ocs/SaveTheWindmills.ocd/DefCore.txt index eb47d7dd4..a10c21c3f 100644 --- a/planet/Arena.ocf/Windmill.ocs/SaveTheWindmills.ocd/DefCore.txt +++ b/planet/Arena.ocf/Windmill.ocs/SaveTheWindmills.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Goal_SaveTheWindmills -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack|C4D_Goal Width=1 Height=1 diff --git a/planet/Arena.ocf/Windmill.ocs/Scenario.txt b/planet/Arena.ocf/Windmill.ocs/Scenario.txt index cb886358b..d02f3efb0 100644 --- a/planet/Arena.ocf/Windmill.ocs/Scenario.txt +++ b/planet/Arena.ocf/Windmill.ocs/Scenario.txt @@ -1,7 +1,7 @@ [Head] Icon=39 Title=Windmill -Version=5,2,0,1 +Version=6,0 Difficulty=10 [Definitions] diff --git a/planet/Decoration.ocd/Misc.ocd/AltMaterials.ocd/DefCore.txt b/planet/Decoration.ocd/Misc.ocd/AltMaterials.ocd/DefCore.txt index ccbc09289..3591232b4 100644 --- a/planet/Decoration.ocd/Misc.ocd/AltMaterials.ocd/DefCore.txt +++ b/planet/Decoration.ocd/Misc.ocd/AltMaterials.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Deco_AltMaterials -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack Width=1 Height=1 diff --git a/planet/Decoration.ocd/Misc.ocd/Hat.ocd/DefCore.txt b/planet/Decoration.ocd/Misc.ocd/Hat.ocd/DefCore.txt index ac3278e8e..6739ad858 100644 --- a/planet/Decoration.ocd/Misc.ocd/Hat.ocd/DefCore.txt +++ b/planet/Decoration.ocd/Misc.ocd/Hat.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Hat -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=8 Height=8 diff --git a/planet/Decoration.ocd/Misc.ocd/LotsOfCoins.ocd/DefCore.txt b/planet/Decoration.ocd/Misc.ocd/LotsOfCoins.ocd/DefCore.txt index 648caa7a9..38d8e78e9 100644 --- a/planet/Decoration.ocd/Misc.ocd/LotsOfCoins.ocd/DefCore.txt +++ b/planet/Decoration.ocd/Misc.ocd/LotsOfCoins.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=LotsOfCoins -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack Width=55 Height=17 diff --git a/planet/Decoration.ocd/Relics.ocd/Bone.ocd/DefCore.txt b/planet/Decoration.ocd/Relics.ocd/Bone.ocd/DefCore.txt index fa742568d..7b4c4f798 100644 --- a/planet/Decoration.ocd/Relics.ocd/Bone.ocd/DefCore.txt +++ b/planet/Decoration.ocd/Relics.ocd/Bone.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Bone -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=8 Height=8 diff --git a/planet/Decoration.ocd/Relics.ocd/RuinChemicalLab.ocd/DefCore.txt b/planet/Decoration.ocd/Relics.ocd/RuinChemicalLab.ocd/DefCore.txt index 7e7be612b..c3265729b 100644 --- a/planet/Decoration.ocd/Relics.ocd/RuinChemicalLab.ocd/DefCore.txt +++ b/planet/Decoration.ocd/Relics.ocd/RuinChemicalLab.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Ruin_ChemicalLab -Version=5,4,0,0 +Version=6,0 Category=C4D_Structure Width=50 Height=52 diff --git a/planet/Decoration.ocd/Relics.ocd/RuinWindmill.ocd/DefCore.txt b/planet/Decoration.ocd/Relics.ocd/RuinWindmill.ocd/DefCore.txt index 78cb1418d..3d86004b5 100644 --- a/planet/Decoration.ocd/Relics.ocd/RuinWindmill.ocd/DefCore.txt +++ b/planet/Decoration.ocd/Relics.ocd/RuinWindmill.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Ruin_Windmill -Version=5,4,0,0 +Version=6,0 Category=C4D_Structure Width=80 Height=96 diff --git a/planet/Decoration.ocd/Relics.ocd/RuinWoodenCabin.ocd/DefCore.txt b/planet/Decoration.ocd/Relics.ocd/RuinWoodenCabin.ocd/DefCore.txt index cf649e514..358009c3c 100644 --- a/planet/Decoration.ocd/Relics.ocd/RuinWoodenCabin.ocd/DefCore.txt +++ b/planet/Decoration.ocd/Relics.ocd/RuinWoodenCabin.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Ruin_WoodenCabin -Version=5,4,0,0 +Version=6,0 Category=C4D_Structure Width=94 Height=43 diff --git a/planet/Decoration.ocd/Relics.ocd/Skull.ocd/DefCore.txt b/planet/Decoration.ocd/Relics.ocd/Skull.ocd/DefCore.txt index 6b289ea7a..d93f178a2 100644 --- a/planet/Decoration.ocd/Relics.ocd/Skull.ocd/DefCore.txt +++ b/planet/Decoration.ocd/Relics.ocd/Skull.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Skull -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=11 Height=13 diff --git a/planet/Decoration.ocd/Village.ocd/ManaAltar.ocd/DefCore.txt b/planet/Decoration.ocd/Village.ocd/ManaAltar.ocd/DefCore.txt index c0ef74e59..40a03376e 100644 --- a/planet/Decoration.ocd/Village.ocd/ManaAltar.ocd/DefCore.txt +++ b/planet/Decoration.ocd/Village.ocd/ManaAltar.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=EnvPack_ManaAltar -Version=4,10,0,0 +Version=6,0 Category=C4D_Object Width=8 Height=8 diff --git a/planet/Decoration.ocd/Village.ocd/StrawMan.ocd/DefCore.txt b/planet/Decoration.ocd/Village.ocd/StrawMan.ocd/DefCore.txt index e79469361..14c2efa35 100644 --- a/planet/Decoration.ocd/Village.ocd/StrawMan.ocd/DefCore.txt +++ b/planet/Decoration.ocd/Village.ocd/StrawMan.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=StrawMan -Version=5,4,0,0 +Version=6,0 Category=C4D_StaticBack Width=12 Height=20 diff --git a/planet/Experimental.ocd/Ambience.ocd/DefCore.txt b/planet/Experimental.ocd/Ambience.ocd/DefCore.txt new file mode 100644 index 000000000..b6a82edc8 --- /dev/null +++ b/planet/Experimental.ocd/Ambience.ocd/DefCore.txt @@ -0,0 +1,5 @@ +[DefCore] +id=Ambience +Version=6,0 +Category=C4D_StaticBack | C4D_Rule +Picture=0,0,128,128 diff --git a/planet/Experimental.ocd/Ambience.ocd/Graphics.png b/planet/Experimental.ocd/Ambience.ocd/Graphics.png new file mode 100644 index 000000000..eb56c3723 Binary files /dev/null and b/planet/Experimental.ocd/Ambience.ocd/Graphics.png differ diff --git a/planet/Experimental.ocd/Ambience.ocd/Script.c b/planet/Experimental.ocd/Ambience.ocd/Script.c new file mode 100644 index 000000000..cd524dc7a --- /dev/null +++ b/planet/Experimental.ocd/Ambience.ocd/Script.c @@ -0,0 +1,299 @@ +/** + Ambience + Controls sound and music depending on the environment the player is in + + @author Sven2 +*/ + +local exec_counter; // counter to distribute execution of players across frames +local last_environment; // array indexed by player number: pointer to environment the player was in last +local environments; // array of available environments for which it is checked if the player is in. sorted by priority. + +// Initialization +protected func Initialize() +{ + // Base environment + Environment = { + actions = [], + min_change_delay = 1, + min_initial_change_delay = 5, + AddSound = this.Env_AddSound, + AddAction = this.Env_AddAction, + SetMusic = this.Env_SetMusic + }; + // Register default environments (overloadable) + this->InitializeEnvironments(); + // Periodic execution of ambience events + last_environment = []; + AddTimer(this.Execute, 10); + return true; +} + +func InitializeEnvironments() +{ + // Register all standard environments + environments = []; + // Underwater: Clonk is swimming in water + var underwater = this.env_underwater = new Environment {}; + underwater->SetMusic("underwater"); + underwater.CheckPlayer = this.EnvCheck_Underwater; + AddEnvironment(underwater, 1400); + // City: Clonk is surrounded by buildings + var city = this.env_city = new Environment {}; + city->SetMusic("city"); + city.CheckPlayer = this.EnvCheck_City; + AddEnvironment(city, 1200); + // Lava: Lava material is nearby + var lava = this.env_lava = new Environment {}; + lava->SetMusic("lava"); + lava.CheckPlayer = this.EnvCheck_Lava; + lava.mat_mask = CreateArray(); // material mask for lava materials. +1 cuz sky. + lava.mat_mask[Material("Lava")+1] = true; // loop over materials and check incindiary instead? Whoever introduces the next lava type can do that... + lava.mat_mask[Material("DuroLava")+1] = true; + lava.min_change_delay = 3; // Easy to miss lava on search. + AddEnvironment(lava, 1000); + // Underground: Clonk in front of tunnel + var underground = this.env_underground = new Environment {}; + underground->SetMusic("underground"); + underground.CheckPlayer = this.EnvCheck_Underground; + AddEnvironment(underground, 800); + // Mountains: Overground and lots of rock around + var mountains = this.env_mountains = new Environment {}; + mountains->SetMusic("mountains"); + mountains.CheckPlayer = this.EnvCheck_Mountains; + mountains.mat_mask = CreateArray(); // material mask for mountain materials. +1 cuz sky. + mountains.mat_mask[Material("Rock")+1] = true; + mountains.mat_mask[Material("Granite")+1] = true; + mountains.mat_mask[Material("Ore")+1] = true; + mountains.mat_mask[Material("Gold")+1] = true; + mountains.min_change_delay = 3; // Pretty unstable condition + AddEnvironment(mountains, 600); + // Snow: It's snowing around the clonk + var snow = this.env_snow = new Environment {}; + snow->SetMusic("snow"); + snow.CheckPlayer = this.EnvCheck_Snow; + snow.min_change_delay = 6; // Persist a while after snowing stopped + snow.mat = Material("Snow"); + AddEnvironment(snow, 400); + // Night: Sunlight blocked by planet + var night = this.env_night = new Environment {}; + night->SetMusic("night"); + night.CheckPlayer = this.EnvCheck_Night; + AddEnvironment(night, 200); + // Overground: Default environment + var overground = this.env_overground = new Environment {}; + overground->SetMusic("overground"); + overground.CheckPlayer = this.EnvCheck_Overground; + overground->AddSound("Ding", 100); + AddEnvironment(overground, 0); + return true; +} + +private func Execute() +{ + // Per-player execution every third timer (~.8 seconds) + var i=GetPlayerCount(C4PT_User); + while (i--) if (!(++exec_counter % 3)) + { + ExecutePlayer(GetPlayerByIndex(i, C4PT_User)); + } + return true; +} + +private func ExecutePlayer(int plr) +{ + var cursor = GetCursor(plr); + // Determine environment the player is currently in + var environment = nil; + if (cursor) + { + var last_env = last_environment[plr]; + var x = cursor->GetX(), y = cursor->GetY(); + for (test_environment in environments) + { + if (environment = test_environment->CheckPlayer(cursor, x, y, test_environment == last_env)) + { + // We've found a matchign environment. + // Was it a change? Then check delays first + if (test_environment != last_env) + { + if (last_env && last_env.no_change_delay) + { + // Environment should change but a delay is specified. Keep last environment for now. + --last_env.no_change_delay; + environment = last_env; + break; + } + // New environment and change delay has passed. + environment.no_change_delay = environment.min_initial_change_delay; + Log("%s environment: %s", GetPlayerName(plr), environment.music); + } + else + { + // Was no change: Reset change delays + environment.no_change_delay = Max(environment.no_change_delay, environment.min_change_delay); + } + break; + } + } + } + last_environment[plr] = environment; + if (!environment) return true; + // Music by environment + this->SetPlayList(environment.music, plr, true, 3000); + // Sounds and actions by environment + for (var action in environment.actions) + if (Random(1000) < action.chance) + cursor->Call(action.fn, action.par[0], action.par[1], action.par[2], action.par[3], action.par[4]); + return true; +} + +func InitializePlayer(int plr) +{ + // Newly joining players should have set playlist immediately (so they don't start playing a random song just to switch it immediately) + ExecutePlayer(plr); + return true; +} + +func RemovePlayer(int plr) +{ + // Ensure newly joining players don't check on another player's environment + last_environment[plr] = nil; + return true; +} + +protected func Activate(int byplr) +{ + MessageWindow(this.Description, byplr); + return true; +} + +/* Environment functions */ + +func AddEnvironment(proplist new_env, priority) +{ + if (GetType(priority)) new_env.Priority = priority; + this.environments[GetLength(environments)] = new_env; + SortArrayByProperty(this.environments, "Priority", true); + return true; +} + +private func Env_AddSound(string snd_name, chance) +{ + return Env_AddAction(Global.Sound, snd_name, chance ?? 50); +} + +private func Env_AddAction(afn, par0, par1, par2, par3, par4) +{ + return this.actions[GetLength(this.actions)] = { fn=afn, par=[par0, par1, par2, par3, par4] }; +} + +private func Env_SetMusic(string playlist) +{ + this.music = playlist; + return true; +} + +/* Default environment checks */ + +private func EnvCheck_Underwater(object cursor, int x, int y, bool is_current) +{ + // Clonk should be swimming + if (cursor->GetProcedure() != "SWIM") return nil; + // For initial change, clonk should also be diving: Check for breath below 80% + // Use > instead of >= to ensure 0-breath-clonks can also get the environment + if (!is_current && cursor->GetBreath() > cursor.MaxBreath*4/5) return nil; + return this; +} + +private func EnvCheck_City(object cursor, int x, int y, bool is_current) +{ + // There must be buildings around the clonk + var building_count = cursor->ObjectCount(cursor->Find_AtRect(-180,-100,360,200), Find_Func("IsStructure")); + // 3 buildings to start the environment. Just 1 building to sustain it. + if (building_count < 3-2*is_current) return nil; + return this; +} + +private func EnvCheck_Lava(object cursor, int x, int y, bool is_current) +{ + // Check for lava pixels. First check if the last lava pixel we found is still in place. + var search_range; + if (is_current) + { + if (this.mat_mask[GetMaterial(this.last_x, this.last_y)+1]) + if (Distance(this.last_x, this.last_y, x, y) < 140) + return this; + search_range = 140; + } + else + { + search_range = 70; + } + // Now search for lava in search range + var ang = Random(360); + for (; search_range >= 0; search_range -= 10) + { + ang += 200; + var x2 = x + Sin(ang, search_range); + var y2 = y + Cos(ang, search_range); + if (this.mat_mask[GetMaterial(x2, y2)+1]) + { + // Lava found! + this.last_x = x2; + this.last_y = y2; + return this; + } + } + // No lava found + return nil; +} + +private func EnvCheck_Underground(object cursor, int x, int y, bool is_current) +{ + // Check for underground: No sky at cursor or above + if (GetMaterial(x,y)<0) return nil; + if (GetMaterial(x,y-30)<0) return nil; + if (GetMaterial(x-10,y-20)<0) return nil; + if (GetMaterial(x+10,y-20)<0) return nil; + return this; +} + +private func EnvCheck_Mountains(object cursor, int x, int y, bool is_current) +{ + // Check for mountains: Rock materials below + var num_rock; + for (var y2=0; y2<=45; y2+=15) + for (var x2=-75; x2<=75; x2+=15) + num_rock += this.mat_mask[GetMaterial(x+x2,y+y2)+1]; + // need 15pts on first check; 5 to sustain + if (num_rock < 15-is_current*10) return nil; + return this; +} + +private func EnvCheck_Snow(object cursor, int x, int y, bool is_current) +{ + // Must be snowing from above + if (GetPXSCount(this.mat, x-300, y-200, 600, 300) < 20 - is_current*15) return nil; + return this; +} + +private func EnvCheck_Night(object cursor, int x, int y, bool is_current) +{ + // Night time. + var time = FindObject(Find_ID(Environment_Time)); + if (!time || !time->IsNight()) return nil; + return this; +} + +private func EnvCheck_Overground(object cursor, int x, int y, bool is_current) +{ + // This is the fallback environment + return this; +} + +/*-- Proplist --*/ + +local Name = "$Name$"; +local Description = "$Description$"; +local Environment; diff --git a/planet/Experimental.ocd/Ambience.ocd/StringTblDE.txt b/planet/Experimental.ocd/Ambience.ocd/StringTblDE.txt new file mode 100644 index 000000000..e639e4a14 --- /dev/null +++ b/planet/Experimental.ocd/Ambience.ocd/StringTblDE.txt @@ -0,0 +1,2 @@ +Name=Ambiente +Description=Regelt die Geraeuschkulisse. diff --git a/planet/Experimental.ocd/Ambience.ocd/StringTblUS.txt b/planet/Experimental.ocd/Ambience.ocd/StringTblUS.txt new file mode 100644 index 000000000..21791f5e3 --- /dev/null +++ b/planet/Experimental.ocd/Ambience.ocd/StringTblUS.txt @@ -0,0 +1,3 @@ +Name=Ambience +Description=Controls environmental sounds and music. + diff --git a/planet/Experimental.ocd/FireGlobe.ocd/Path.ocd/DefCore.txt b/planet/Experimental.ocd/FireGlobe.ocd/Path.ocd/DefCore.txt index ebb57fc25..1a915847f 100644 --- a/planet/Experimental.ocd/FireGlobe.ocd/Path.ocd/DefCore.txt +++ b/planet/Experimental.ocd/FireGlobe.ocd/Path.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=VisualPath -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack Width=1 Height=1 diff --git a/planet/Objects.ocd/Animals.ocd/FlightlessBird.ocd/bird3.material b/planet/Experimental.ocd/FlightlessBird.ocd/bird3.material similarity index 100% rename from planet/Objects.ocd/Animals.ocd/FlightlessBird.ocd/bird3.material rename to planet/Experimental.ocd/FlightlessBird.ocd/bird3.material diff --git a/planet/Objects.ocd/Animals.ocd/FlightlessBird.ocd/color.png b/planet/Experimental.ocd/FlightlessBird.ocd/color.png similarity index 100% rename from planet/Objects.ocd/Animals.ocd/FlightlessBird.ocd/color.png rename to planet/Experimental.ocd/FlightlessBird.ocd/color.png diff --git a/planet/Objects.ocd/Animals.ocd/FlightlessBird.ocd/flightless_bird_mesh.mesh b/planet/Experimental.ocd/FlightlessBird.ocd/flightless_bird_mesh.mesh similarity index 100% rename from planet/Objects.ocd/Animals.ocd/FlightlessBird.ocd/flightless_bird_mesh.mesh rename to planet/Experimental.ocd/FlightlessBird.ocd/flightless_bird_mesh.mesh diff --git a/planet/Objects.ocd/Animals.ocd/FlightlessBird.ocd/flightless_bird_mesh.skeleton b/planet/Experimental.ocd/FlightlessBird.ocd/flightless_bird_mesh.skeleton similarity index 100% rename from planet/Objects.ocd/Animals.ocd/FlightlessBird.ocd/flightless_bird_mesh.skeleton rename to planet/Experimental.ocd/FlightlessBird.ocd/flightless_bird_mesh.skeleton diff --git a/planet/Experimental.ocd/Hatch.ocd/DefCore.txt b/planet/Experimental.ocd/Hatch.ocd/DefCore.txt index 13ff5ea45..a3a02cc91 100644 --- a/planet/Experimental.ocd/Hatch.ocd/DefCore.txt +++ b/planet/Experimental.ocd/Hatch.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Hatch -Version=5,2,0,1 +Version=6,0 Category=C4D_Structure Width=26 Height=26 diff --git a/planet/Experimental.ocd/Hatch.ocd/Hatch3DGraphic.ocd/DefCore.txt b/planet/Experimental.ocd/Hatch.ocd/Hatch3DGraphic.ocd/DefCore.txt index 65996287e..3c7325272 100644 --- a/planet/Experimental.ocd/Hatch.ocd/Hatch3DGraphic.ocd/DefCore.txt +++ b/planet/Experimental.ocd/Hatch.ocd/Hatch3DGraphic.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Hatch_Graphic -Version=5,2,0,1 +Version=6,0 Width=26 Height=26 Offset=-13,-13 diff --git a/planet/Experimental.ocd/LiftTower.ocd/DefCore.txt b/planet/Experimental.ocd/LiftTower.ocd/DefCore.txt index b00ab8024..494dea9cb 100644 --- a/planet/Experimental.ocd/LiftTower.ocd/DefCore.txt +++ b/planet/Experimental.ocd/LiftTower.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=LiftTower -Version=5,2,0,1 +Version=6,0 Category=C4D_Structure Width=23 Height=68 diff --git a/planet/Experimental.ocd/LiftTower.ocd/Hook.ocd/DefCore.txt b/planet/Experimental.ocd/LiftTower.ocd/Hook.ocd/DefCore.txt index 5fec776b8..d5181b1c2 100644 --- a/planet/Experimental.ocd/LiftTower.ocd/Hook.ocd/DefCore.txt +++ b/planet/Experimental.ocd/LiftTower.ocd/Hook.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=LiftTower_Hook -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=8 Height=8 diff --git a/planet/Experimental.ocd/LiftTower.ocd/Rope.ocd/DefCore.txt b/planet/Experimental.ocd/LiftTower.ocd/Rope.ocd/DefCore.txt index f0b8ff46e..ce8422ba7 100644 --- a/planet/Experimental.ocd/LiftTower.ocd/Rope.ocd/DefCore.txt +++ b/planet/Experimental.ocd/LiftTower.ocd/Rope.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=LiftTower_Rope -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack Vertices=2 Width=2 diff --git a/planet/Experimental.ocd/Moss.ocd/DefCore.txt b/planet/Experimental.ocd/Moss.ocd/DefCore.txt index 034b5007f..4a823c24e 100644 --- a/planet/Experimental.ocd/Moss.ocd/DefCore.txt +++ b/planet/Experimental.ocd/Moss.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Moss -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=8 Height=8 diff --git a/planet/Experimental.ocd/Moss.ocd/Lichen.ocd/DefCore.txt b/planet/Experimental.ocd/Moss.ocd/Lichen.ocd/DefCore.txt index 16a8cd50e..3c6151f6a 100644 --- a/planet/Experimental.ocd/Moss.ocd/Lichen.ocd/DefCore.txt +++ b/planet/Experimental.ocd/Moss.ocd/Lichen.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Moss_Lichen -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack | C4D_Object Width=20 Height=20 diff --git a/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/Ambience.ocd/DefCore.txt b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/Ambience.ocd/DefCore.txt new file mode 100644 index 000000000..b6a82edc8 --- /dev/null +++ b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/Ambience.ocd/DefCore.txt @@ -0,0 +1,5 @@ +[DefCore] +id=Ambience +Version=6,0 +Category=C4D_StaticBack | C4D_Rule +Picture=0,0,128,128 diff --git a/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/Ambience.ocd/Graphics.png b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/Ambience.ocd/Graphics.png new file mode 100644 index 000000000..eb56c3723 Binary files /dev/null and b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/Ambience.ocd/Graphics.png differ diff --git a/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/Ambience.ocd/Script.c b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/Ambience.ocd/Script.c new file mode 100644 index 000000000..cd524dc7a --- /dev/null +++ b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/Ambience.ocd/Script.c @@ -0,0 +1,299 @@ +/** + Ambience + Controls sound and music depending on the environment the player is in + + @author Sven2 +*/ + +local exec_counter; // counter to distribute execution of players across frames +local last_environment; // array indexed by player number: pointer to environment the player was in last +local environments; // array of available environments for which it is checked if the player is in. sorted by priority. + +// Initialization +protected func Initialize() +{ + // Base environment + Environment = { + actions = [], + min_change_delay = 1, + min_initial_change_delay = 5, + AddSound = this.Env_AddSound, + AddAction = this.Env_AddAction, + SetMusic = this.Env_SetMusic + }; + // Register default environments (overloadable) + this->InitializeEnvironments(); + // Periodic execution of ambience events + last_environment = []; + AddTimer(this.Execute, 10); + return true; +} + +func InitializeEnvironments() +{ + // Register all standard environments + environments = []; + // Underwater: Clonk is swimming in water + var underwater = this.env_underwater = new Environment {}; + underwater->SetMusic("underwater"); + underwater.CheckPlayer = this.EnvCheck_Underwater; + AddEnvironment(underwater, 1400); + // City: Clonk is surrounded by buildings + var city = this.env_city = new Environment {}; + city->SetMusic("city"); + city.CheckPlayer = this.EnvCheck_City; + AddEnvironment(city, 1200); + // Lava: Lava material is nearby + var lava = this.env_lava = new Environment {}; + lava->SetMusic("lava"); + lava.CheckPlayer = this.EnvCheck_Lava; + lava.mat_mask = CreateArray(); // material mask for lava materials. +1 cuz sky. + lava.mat_mask[Material("Lava")+1] = true; // loop over materials and check incindiary instead? Whoever introduces the next lava type can do that... + lava.mat_mask[Material("DuroLava")+1] = true; + lava.min_change_delay = 3; // Easy to miss lava on search. + AddEnvironment(lava, 1000); + // Underground: Clonk in front of tunnel + var underground = this.env_underground = new Environment {}; + underground->SetMusic("underground"); + underground.CheckPlayer = this.EnvCheck_Underground; + AddEnvironment(underground, 800); + // Mountains: Overground and lots of rock around + var mountains = this.env_mountains = new Environment {}; + mountains->SetMusic("mountains"); + mountains.CheckPlayer = this.EnvCheck_Mountains; + mountains.mat_mask = CreateArray(); // material mask for mountain materials. +1 cuz sky. + mountains.mat_mask[Material("Rock")+1] = true; + mountains.mat_mask[Material("Granite")+1] = true; + mountains.mat_mask[Material("Ore")+1] = true; + mountains.mat_mask[Material("Gold")+1] = true; + mountains.min_change_delay = 3; // Pretty unstable condition + AddEnvironment(mountains, 600); + // Snow: It's snowing around the clonk + var snow = this.env_snow = new Environment {}; + snow->SetMusic("snow"); + snow.CheckPlayer = this.EnvCheck_Snow; + snow.min_change_delay = 6; // Persist a while after snowing stopped + snow.mat = Material("Snow"); + AddEnvironment(snow, 400); + // Night: Sunlight blocked by planet + var night = this.env_night = new Environment {}; + night->SetMusic("night"); + night.CheckPlayer = this.EnvCheck_Night; + AddEnvironment(night, 200); + // Overground: Default environment + var overground = this.env_overground = new Environment {}; + overground->SetMusic("overground"); + overground.CheckPlayer = this.EnvCheck_Overground; + overground->AddSound("Ding", 100); + AddEnvironment(overground, 0); + return true; +} + +private func Execute() +{ + // Per-player execution every third timer (~.8 seconds) + var i=GetPlayerCount(C4PT_User); + while (i--) if (!(++exec_counter % 3)) + { + ExecutePlayer(GetPlayerByIndex(i, C4PT_User)); + } + return true; +} + +private func ExecutePlayer(int plr) +{ + var cursor = GetCursor(plr); + // Determine environment the player is currently in + var environment = nil; + if (cursor) + { + var last_env = last_environment[plr]; + var x = cursor->GetX(), y = cursor->GetY(); + for (test_environment in environments) + { + if (environment = test_environment->CheckPlayer(cursor, x, y, test_environment == last_env)) + { + // We've found a matchign environment. + // Was it a change? Then check delays first + if (test_environment != last_env) + { + if (last_env && last_env.no_change_delay) + { + // Environment should change but a delay is specified. Keep last environment for now. + --last_env.no_change_delay; + environment = last_env; + break; + } + // New environment and change delay has passed. + environment.no_change_delay = environment.min_initial_change_delay; + Log("%s environment: %s", GetPlayerName(plr), environment.music); + } + else + { + // Was no change: Reset change delays + environment.no_change_delay = Max(environment.no_change_delay, environment.min_change_delay); + } + break; + } + } + } + last_environment[plr] = environment; + if (!environment) return true; + // Music by environment + this->SetPlayList(environment.music, plr, true, 3000); + // Sounds and actions by environment + for (var action in environment.actions) + if (Random(1000) < action.chance) + cursor->Call(action.fn, action.par[0], action.par[1], action.par[2], action.par[3], action.par[4]); + return true; +} + +func InitializePlayer(int plr) +{ + // Newly joining players should have set playlist immediately (so they don't start playing a random song just to switch it immediately) + ExecutePlayer(plr); + return true; +} + +func RemovePlayer(int plr) +{ + // Ensure newly joining players don't check on another player's environment + last_environment[plr] = nil; + return true; +} + +protected func Activate(int byplr) +{ + MessageWindow(this.Description, byplr); + return true; +} + +/* Environment functions */ + +func AddEnvironment(proplist new_env, priority) +{ + if (GetType(priority)) new_env.Priority = priority; + this.environments[GetLength(environments)] = new_env; + SortArrayByProperty(this.environments, "Priority", true); + return true; +} + +private func Env_AddSound(string snd_name, chance) +{ + return Env_AddAction(Global.Sound, snd_name, chance ?? 50); +} + +private func Env_AddAction(afn, par0, par1, par2, par3, par4) +{ + return this.actions[GetLength(this.actions)] = { fn=afn, par=[par0, par1, par2, par3, par4] }; +} + +private func Env_SetMusic(string playlist) +{ + this.music = playlist; + return true; +} + +/* Default environment checks */ + +private func EnvCheck_Underwater(object cursor, int x, int y, bool is_current) +{ + // Clonk should be swimming + if (cursor->GetProcedure() != "SWIM") return nil; + // For initial change, clonk should also be diving: Check for breath below 80% + // Use > instead of >= to ensure 0-breath-clonks can also get the environment + if (!is_current && cursor->GetBreath() > cursor.MaxBreath*4/5) return nil; + return this; +} + +private func EnvCheck_City(object cursor, int x, int y, bool is_current) +{ + // There must be buildings around the clonk + var building_count = cursor->ObjectCount(cursor->Find_AtRect(-180,-100,360,200), Find_Func("IsStructure")); + // 3 buildings to start the environment. Just 1 building to sustain it. + if (building_count < 3-2*is_current) return nil; + return this; +} + +private func EnvCheck_Lava(object cursor, int x, int y, bool is_current) +{ + // Check for lava pixels. First check if the last lava pixel we found is still in place. + var search_range; + if (is_current) + { + if (this.mat_mask[GetMaterial(this.last_x, this.last_y)+1]) + if (Distance(this.last_x, this.last_y, x, y) < 140) + return this; + search_range = 140; + } + else + { + search_range = 70; + } + // Now search for lava in search range + var ang = Random(360); + for (; search_range >= 0; search_range -= 10) + { + ang += 200; + var x2 = x + Sin(ang, search_range); + var y2 = y + Cos(ang, search_range); + if (this.mat_mask[GetMaterial(x2, y2)+1]) + { + // Lava found! + this.last_x = x2; + this.last_y = y2; + return this; + } + } + // No lava found + return nil; +} + +private func EnvCheck_Underground(object cursor, int x, int y, bool is_current) +{ + // Check for underground: No sky at cursor or above + if (GetMaterial(x,y)<0) return nil; + if (GetMaterial(x,y-30)<0) return nil; + if (GetMaterial(x-10,y-20)<0) return nil; + if (GetMaterial(x+10,y-20)<0) return nil; + return this; +} + +private func EnvCheck_Mountains(object cursor, int x, int y, bool is_current) +{ + // Check for mountains: Rock materials below + var num_rock; + for (var y2=0; y2<=45; y2+=15) + for (var x2=-75; x2<=75; x2+=15) + num_rock += this.mat_mask[GetMaterial(x+x2,y+y2)+1]; + // need 15pts on first check; 5 to sustain + if (num_rock < 15-is_current*10) return nil; + return this; +} + +private func EnvCheck_Snow(object cursor, int x, int y, bool is_current) +{ + // Must be snowing from above + if (GetPXSCount(this.mat, x-300, y-200, 600, 300) < 20 - is_current*15) return nil; + return this; +} + +private func EnvCheck_Night(object cursor, int x, int y, bool is_current) +{ + // Night time. + var time = FindObject(Find_ID(Environment_Time)); + if (!time || !time->IsNight()) return nil; + return this; +} + +private func EnvCheck_Overground(object cursor, int x, int y, bool is_current) +{ + // This is the fallback environment + return this; +} + +/*-- Proplist --*/ + +local Name = "$Name$"; +local Description = "$Description$"; +local Environment; diff --git a/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/Ambience.ocd/StringTblDE.txt b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/Ambience.ocd/StringTblDE.txt new file mode 100644 index 000000000..e639e4a14 --- /dev/null +++ b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/Ambience.ocd/StringTblDE.txt @@ -0,0 +1,2 @@ +Name=Ambiente +Description=Regelt die Geraeuschkulisse. diff --git a/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/Ambience.ocd/StringTblUS.txt b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/Ambience.ocd/StringTblUS.txt new file mode 100644 index 000000000..21791f5e3 --- /dev/null +++ b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/Ambience.ocd/StringTblUS.txt @@ -0,0 +1,3 @@ +Name=Ambience +Description=Controls environmental sounds and music. + diff --git a/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/CrystalCommunicator.ocd/CrystalCommActive.ogg b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/CrystalCommunicator.ocd/CrystalCommActive.ogg new file mode 100644 index 000000000..cdfa22316 Binary files /dev/null and b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/CrystalCommunicator.ocd/CrystalCommActive.ogg differ diff --git a/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/CrystalCommunicator.ocd/CrystalCommBoost.ogg b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/CrystalCommunicator.ocd/CrystalCommBoost.ogg new file mode 100644 index 000000000..6dba3e948 Binary files /dev/null and b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/CrystalCommunicator.ocd/CrystalCommBoost.ogg differ diff --git a/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/CrystalCommunicator.ocd/CrystalCommCharge.ogg b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/CrystalCommunicator.ocd/CrystalCommCharge.ogg new file mode 100644 index 000000000..3a1e0960b Binary files /dev/null and b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/CrystalCommunicator.ocd/CrystalCommCharge.ogg differ diff --git a/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/CrystalCommunicator.ocd/CrystalCommToneA.ogg b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/CrystalCommunicator.ocd/CrystalCommToneA.ogg new file mode 100644 index 000000000..d59ff84ce Binary files /dev/null and b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/CrystalCommunicator.ocd/CrystalCommToneA.ogg differ diff --git a/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/CrystalCommunicator.ocd/CrystalCommToneB.ogg b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/CrystalCommunicator.ocd/CrystalCommToneB.ogg new file mode 100644 index 000000000..26fe35a39 Binary files /dev/null and b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/CrystalCommunicator.ocd/CrystalCommToneB.ogg differ diff --git a/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/CrystalCommunicator.ocd/CrystalCommWumm.ogg b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/CrystalCommunicator.ocd/CrystalCommWumm.ogg new file mode 100644 index 000000000..f79c88424 Binary files /dev/null and b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/CrystalCommunicator.ocd/CrystalCommWumm.ogg differ diff --git a/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/CrystalCommunicator.ocd/DefCore.txt b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/CrystalCommunicator.ocd/DefCore.txt new file mode 100644 index 000000000..befb6df74 --- /dev/null +++ b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/CrystalCommunicator.ocd/DefCore.txt @@ -0,0 +1,15 @@ +[DefCore] +id=CrystalCommunicator +Version=6,0 +Category=C4D_Structure +Width=90 +Height=70 +Offset=-45,-35 +Vertices=2 +VertexX=-40,40 +VertexY=34,34 +VertexFriction=100,100 +Mass=300 +Components=Ruby=6;Amethyst=6;Metal=6; +Rotate=0 +Construction=1 diff --git a/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/CrystalCommunicator.ocd/Graphics.5.png b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/CrystalCommunicator.ocd/Graphics.5.png new file mode 100644 index 000000000..3b4517853 Binary files /dev/null and b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/CrystalCommunicator.ocd/Graphics.5.png differ diff --git a/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/CrystalCommunicator.ocd/GraphicsSite0.5.png b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/CrystalCommunicator.ocd/GraphicsSite0.5.png new file mode 100644 index 000000000..f897c1c44 Binary files /dev/null and b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/CrystalCommunicator.ocd/GraphicsSite0.5.png differ diff --git a/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/CrystalCommunicator.ocd/GraphicsSite1.5.png b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/CrystalCommunicator.ocd/GraphicsSite1.5.png new file mode 100644 index 000000000..dd184a19a Binary files /dev/null and b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/CrystalCommunicator.ocd/GraphicsSite1.5.png differ diff --git a/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/CrystalCommunicator.ocd/GraphicsSite2.5.png b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/CrystalCommunicator.ocd/GraphicsSite2.5.png new file mode 100644 index 000000000..2a7690e89 Binary files /dev/null and b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/CrystalCommunicator.ocd/GraphicsSite2.5.png differ diff --git a/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/CrystalCommunicator.ocd/GraphicsTopFace.5.png b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/CrystalCommunicator.ocd/GraphicsTopFace.5.png new file mode 100644 index 000000000..78256f4e3 Binary files /dev/null and b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/CrystalCommunicator.ocd/GraphicsTopFace.5.png differ diff --git a/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/CrystalCommunicator.ocd/Script.c b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/CrystalCommunicator.ocd/Script.c new file mode 100644 index 000000000..98f555634 --- /dev/null +++ b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/CrystalCommunicator.ocd/Script.c @@ -0,0 +1,357 @@ +/*-- + Crystal communicator + Author: Sven2 + + Shining structure built from gems and metal +--*/ + +#include Library_Structure + +local top_face, base_face; + +public func IsCrystalCommunicator() { return !base_face; } + +/* Construction */ + +public func SetConstructionSiteOverlay(object site, int dir, object stick, object component_obj) +{ + // Play component-specific sound for adding stuff to the site + if (component_obj && !component_obj->GetDefFragile()) component_obj->~Hit(); + // Construction site graphics by provided metal + var metal_completion = site->ContentsCount(Metal) * 3 / Max(GetComponent(Metal, nil, nil, this), 1); + site->SetGraphics(["Site0", "Site1", "Site2", nil][metal_completion], CrystalCommunicator, 1, GFXOV_MODE_Base); + site->SetGraphics(nil, nil, 2); + // Add graphics of contained gems + UpdateGemOverlays(site, [1, 3, 7, 12][metal_completion]); + return true; +} + +public func DoConstructionEffects(object site) +{ + // Grab all gems from site + GrabContents(site); + var metal; + while (metal = FindContents(Metal)) metal->RemoveObject(); + // Site is done immediately + SetCon(100); + // Create TopFace overlay + top_face = CreateObject(GetID(),0,35,GetOwner()); + top_face.Plane = this.Plane + 10; + top_face->SetGraphics("TopFace"); + top_face->SetAction("Attach", this); + top_face.base_face = this; + // Transfer gem overlays + this.gem_overlays = site.gem_overlays; + UpdateGemOverlays(this, 13, true); + // Construction done. Remove site. + site->RemoveObject(site); + // Start finals effect + return true; +} + + +/* Gem overlays */ + +static const CrystalCommunicator_GemsX = [ 15,440,336,221,121,298,220, 50, 14,333,129, 77], + CrystalCommunicator_GemsY = [255, 75,100, 84, 44,107, 15,130,107,153,149,106], + CrystalCommunicator_GemsZ = [ 5, 3, 4, 0, 4, 0, 5, 2, 3, 1, 1, 4], + CrystalCommunicator_GemCount = 12; + +private func UpdateGemOverlays(object obj, int max_overlays, bool refresh_existing) +{ + // Add overlays for any gems that have not yet been added + var gem_overlay_index = 3; + if (!obj.gem_overlays) obj.gem_overlays = []; + var n_overlays = GetLength(obj.gem_overlays); + var i; + // Remove overlays of gems that have left + for (i=0; iContained() != obj) + { + obj->SetGraphics(nil, nil, gem_overlay_index+i); + if (obj.top_face) obj.top_face->SetGraphics(nil, nil, gem_overlay_index+i); + obj.gem_overlays[i] = nil; + } + // Add new overlays + for (var gem in FindObjects(Find_Container(obj), Find_Func("GetGemColor"))) + { + // Already displayed? + i = GetIndexOf(obj.gem_overlays, gem); + if (i>=0) + { + if (!refresh_existing) continue; + } + else + { + // Find a spot for this gem + i = GetIndexOf(obj.gem_overlays, nil); + if (i<0) i=n_overlays; + // No free space? + if (i == max_overlays) if (refresh_existing) continue; else break; + } + // Add overlay + var gem_gfx = gem.graphics_index; + if (gem_gfx) gem_gfx = Format("%d", gem_gfx+1); else gem_gfx = nil; + var x = CrystalCommunicator_GemsX[i]; + var y = CrystalCommunicator_GemsY[i]; + var z = CrystalCommunicator_GemsZ[i]; + var size = z*100+500; + var off_y; + if (obj == this) off_y = 35000; else off_y = 70000; + var gem_target; + if (obj.top_face && z>=3) gem_target = obj.top_face; else gem_target = obj; + gem_target->SetGraphics(gem_gfx, gem->GetID(), gem_overlay_index+i, GFXOV_MODE_Base); + gem_target->SetObjDrawTransform(size,0,x*200-45000, 0,size,y*200-off_y, gem_overlay_index+i); + if (z<3) gem_target->SetClrModulation(0xffb0b0b0, gem_overlay_index+i); + // Remember in list + obj.gem_overlays[i] = gem; + n_overlays = GetLength(obj.gem_overlays); + } + // Make sure a glitter effect is there + if (!GetEffect("IntGemGlitter", obj)) AddEffect("IntGemGlitter", obj, 1, 12, nil, CrystalCommunicator); + return true; +} + +private func FxIntGemGlitterTimer(target) +{ + // Glitter at random gem position + if (Random(2)) + { + var i = Random(12), gem; + if (gem = target.gem_overlays[i]) + { + var x = CrystalCommunicator_GemsX[i]/5 - 45; + var y = CrystalCommunicator_GemsY[i]/5 - 35; + if (target->GetID() == ConstructionSite) y -= 35; + var size = CrystalCommunicator_GemsZ[i]*4 + 10; + var sparkle_fx = GetEffect("Sparkle", gem); + sparkle_fx.Size = PV_KeyFrames(1, 0, 0, 500, size, 1000, 0); // modifying value directly in gem, assuming gem won't leave this structure any more + if (sparkle_fx && sparkle_fx.particles) + target->CreateParticle("MagicRing", x, y, 0, 0, size, sparkle_fx.particles, 1); + } + } +} + + + +/* End sequence */ + +local ruby_particle, amethyst_particle, beam_particles, gem_particles; +local flash_particle, small_flash_particle, large_flash_particle; +local time; +local send_code, next_send_time, send_code_pos; + +public func StartCommunication() +{ + // forward to main object + if (base_face) return base_face->StartCommunication(); + // Init particles + // Gem particles + beam_particles = CreateArray(CrystalCommunicator_GemCount); + gem_particles = CreateArray(CrystalCommunicator_GemCount); + ruby_particle = new Particles_MagicRing() { R = 0xff, G = 0x00, B = 0x30 }; + amethyst_particle = new Particles_MagicRing() { R = 0xa0, G = 0x00, B = 0xff }; + for (var i=0; iGetID() == Ruby) base = ruby_particle; else base = amethyst_particle; + } + else + { + if (i%2) base = ruby_particle; else base = amethyst_particle; + } + gem_particles[i] = base; + var x = CrystalCommunicator_GemsX[i]/5 - 45; + beam_particles[i] = CreateCirclingParticle(base, 100, 20, Abs(x), x>0); + } + // Central flash particles + flash_particle = { + Size = PV_KeyFrames(0, 0, 0, 500, 60, 1000, 0), + R = PV_KeyFrames(0, 750, 255, 1000, 0), + G = PV_KeyFrames(0, 300, 255, 1000, 0), + B = PV_KeyFrames(0, 300, 255, 500, 0), + Rotation = PV_Random(0, 360), + Alpha = PV_KeyFrames(0, 0, 255, 750, 100, 1000, 0), + BlitMode = GFX_BLIT_Additive, + Attach = ATTACH_Front | ATTACH_MoveRelative, + }; + large_flash_particle = { + Size = PV_KeyFrames(0, 0, 0, 500, 200, 1000, 0), + R = PV_KeyFrames(0, 750, 255, 1000, 0), + G = PV_KeyFrames(0, 300, 255, 1000, 0), + B = PV_KeyFrames(0, 300, 255, 500, 0), + Rotation = PV_Random(0, 360), + Alpha = PV_KeyFrames(0, 0, 255, 750, 100, 1000, 0), + BlitMode = GFX_BLIT_Additive, + Attach = ATTACH_Front | ATTACH_MoveRelative, + }; + // Gem flash particle + small_flash_particle = { + Size = PV_KeyFrames(0, 0, 0, 500, 20, 1000, 0), + R = PV_KeyFrames(0, 750, 255, 1000, 0), + G = PV_KeyFrames(0, 300, 255, 1000, 0), + B = PV_KeyFrames(0, 300, 255, 500, 0), + Rotation = PV_Random(0, 360), + Alpha = PV_KeyFrames(0, 0, 255, 750, 100, 1000, 0), + BlitMode = GFX_BLIT_Additive, + Attach = ATTACH_Front | ATTACH_MoveRelative, + }; + // Run effects + Sound("CrystalCommCharge"); + time = 0; + AddTimer(this.PreActivity, 5); +} + +private func PreActivity() +{ + // Warmup effects + var i,x,y,z; + for (i=0; i=3) gem_target = top_face; else gem_target = this; + if (time < 20 || !Random(3)) + { + if (!(time % 5)) gem_target->CreateParticle("StarFlash", x,y, 0,0, 60+Random(10), small_flash_particle, 1); + } + else + gem_target->CreateParticle("StarFlash", x, y, -x, -y, 10, small_flash_particle, 10); + } + if (time == 20) Sound("CrystalCommBoost"); + if (time > 50) + { + RemoveTimer(this.PreActivity); + time = 0; + CreateParticle("StarFlash", PV_Random(-12, +12), PV_Random(-12, +12), PV_Random(-10, +10),PV_Random(-10, +10), PV_Random(20, 100), large_flash_particle, 10); + Sound("CrystalCommWumm"); + SetAction("Active"); + AddTimer(this.Activity, 1); + } + ++time; +} + +public func StopCommunication() +{ + // forward to main object + if (base_face) return base_face->StopCommunication(); + // Stop activities + RemoveTimer(this.PreActivity); + RemoveTimer(this.Activity); + SetAction("Idle"); + time = 0; + return true; +} + +private func Activity() +{ + // Send codes + if (send_code) + { + if (next_send_time == time) + { + var send_char = GetChar(send_code, send_code_pos++); + if (!send_char) + { + // All sent. + send_code = nil; + } + else + { + // Next char to send + if (send_char == GetChar(".")) + { + Sound("CrystalCommToneA"); + next_send_time = time + 13; + } + else + { + Sound("CrystalCommToneB"); + next_send_time = time + 27; + } + } + } + if (next_send_time - time > 10) + { + // During tone: Effects + CreateParticle("StarFlash", PV_Random(-3, +3), 0, 0,-30, 500, flash_particle, 1); + } + } + // Effects + // Circulate through gems + var i = time % CrystalCommunicator_GemCount; + var x = CrystalCommunicator_GemsX[i]/5 - 45, y = CrystalCommunicator_GemsY[i]/5 - 35, z = CrystalCommunicator_GemsZ[i]; + var gem_target; + if (top_face && z>=3) gem_target = top_face; else gem_target = this; + // Create ring moving upwards + if (Abs(x) > 5) CreateParticle("MagicRing", x, y, 0, -Min(time/20,10), 2000, beam_particles[i], 1); + // Create flash at gem + gem_target->CreateParticle("StarFlash", x, y, 0, 0, 20+Random(10), gem_particles[i], 1); + // Create central flash + if (!(time % 5)) CreateParticle("StarFlash", PV_Random(-6, +6), PV_Random(-6, +6), 0,0, 20+Random(10), flash_particle, 1); + ++time; +} + +private func CreateCirclingParticle(proplist prototype, int frames_per_cycle, int num_cycles, int rad, bool start_backmove) +{ + var a = (rad * 10000000) / (2429 * frames_per_cycle * frames_per_cycle); + var ang0 = (!!start_backmove) * 180; + var particle = { + Prototype = prototype, + Size = PV_Sin(PV_Linear( ang0, 360*num_cycles),5,8), + ForceX = PV_Sin(PV_Linear( ang0+90, ang0+90+360*num_cycles), a, 0), + ForceY = 0, + Attach = ATTACH_Front | ATTACH_MoveRelative, + }; + return particle; + +} + +public func SendCode(string code) +{ + send_code = code; + next_send_time = time; + send_code_pos = 0; + return true; +} + + +/* Definition data */ + +public func Definition(proplist def) +{ +} + +local ActMap = { + Attach = { + Prototype = Action, + Name = "Attach", + Procedure = DFA_ATTACH, + Directions = 1, + FacetBase = 1, + Length = 1, + Delay = 0, + NextAction = "Hold" + }, + Active = { + Prototype = Action, + Name = "Active", + Procedure = DFA_NONE, + Directions = 1, + FacetBase = 1, + Delay = 0, + Length = 1, + NextAction = "Active", + Sound = "CrystalCommActive", + }, + }; + +local Collectible = false; +local Name = "$Name$"; +local Description = "$Description$"; +local Touchable = 0; +local Plane = 280; \ No newline at end of file diff --git a/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/CrystalCommunicator.ocd/StringTblDE.txt b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/CrystalCommunicator.ocd/StringTblDE.txt new file mode 100644 index 000000000..1183ba56d --- /dev/null +++ b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/CrystalCommunicator.ocd/StringTblDE.txt @@ -0,0 +1,2 @@ +Name=Kristallkommunikator +Description=Gerät zur Langstreckenkommunikation \ No newline at end of file diff --git a/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/CrystalCommunicator.ocd/StringTblUS.txt b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/CrystalCommunicator.ocd/StringTblUS.txt new file mode 100644 index 000000000..1f8601a08 --- /dev/null +++ b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/CrystalCommunicator.ocd/StringTblUS.txt @@ -0,0 +1,2 @@ +Name=Crystal communicator +Description=Device for long range communication. \ No newline at end of file diff --git a/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/DescDE.rtf b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/DescDE.rtf new file mode 100644 index 000000000..9133dc5fa Binary files /dev/null and b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/DescDE.rtf differ diff --git a/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/DescUS.rtf b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/DescUS.rtf new file mode 100644 index 000000000..d87907202 Binary files /dev/null and b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/DescUS.rtf differ diff --git a/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/GoalCrystalCommunicator.ocd/DefCore.txt b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/GoalCrystalCommunicator.ocd/DefCore.txt new file mode 100644 index 000000000..14d019cb5 --- /dev/null +++ b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/GoalCrystalCommunicator.ocd/DefCore.txt @@ -0,0 +1,5 @@ +[DefCore] +id=Goal_BuildCrystalCommunicator +Version=6,0 +Category=C4D_StaticBack|C4D_Goal +Picture=0,0,128,128 diff --git a/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/GoalCrystalCommunicator.ocd/Graphics.png b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/GoalCrystalCommunicator.ocd/Graphics.png new file mode 100644 index 000000000..987852638 Binary files /dev/null and b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/GoalCrystalCommunicator.ocd/Graphics.png differ diff --git a/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/GoalCrystalCommunicator.ocd/Script.c b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/GoalCrystalCommunicator.ocd/Script.c new file mode 100644 index 000000000..b563c2dfa --- /dev/null +++ b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/GoalCrystalCommunicator.ocd/Script.c @@ -0,0 +1,61 @@ +/*-- + Build crystal communicator + Author: Sven2 + + Player must build the crystal communicator +--*/ + + +#include Library_Goal + + +/*-- Goal interface --*/ + +// The goal is fulfilled if the communicator has been built +public func IsFulfilled() +{ + return ObjectCount(Find_ID(CrystalCommunicator)); +} + +public func GetDescription(int plr) +{ + var message; + if (IsFulfilled()) + message = "$MsgGoalFulfilled$"; + else + message = "$MsgGoalUnfulfilled$"; + return message; +} + +// Shows or hides a message window with information. +public func Activate(int plr) +{ + // If goal message open -> hide it. + if (GetEffect("GoalMessage", this)) + { + CustomMessage("", nil, plr, nil, nil, nil, nil, nil, MSG_HCenter); + RemoveEffect("GoalMessage", this); + return; + } + // Otherwise open a new message. + AddEffect("GoalMessage", this, 100, 0, this); + var message; + if (IsFulfilled()) + { + message = "@$MsgGoalFulfilled$"; + } + else + { + message = "@$MsgGoalUnfulfilled$"; + } + CustomMessage(message, nil, plr, 0, 16 + 64, 0xffffff, GUI_MenuDeco, this, MSG_HCenter); + return; +} + +protected func FxGoalMessageStart() {} + +//public func GetShortDescription(int plr) { return ""; } + +/*-- Proplist --*/ + +local Name = "$Name$"; diff --git a/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/GoalCrystalCommunicator.ocd/StringTblDE.txt b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/GoalCrystalCommunicator.ocd/StringTblDE.txt new file mode 100644 index 000000000..832b2173d --- /dev/null +++ b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/GoalCrystalCommunicator.ocd/StringTblDE.txt @@ -0,0 +1,5 @@ +Name=Kristallkommunikator bauen + +#Goal window +MsgGoalFulfilled=Glückwunsch; der Kristallkommunikator steht. +MsgGoalUnfulfilled=Bringe das nötige Baumaterial zur Baustelle des Kristallkommunikator! diff --git a/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/GoalCrystalCommunicator.ocd/StringTblUS.txt b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/GoalCrystalCommunicator.ocd/StringTblUS.txt new file mode 100644 index 000000000..dc7cbcba7 --- /dev/null +++ b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/GoalCrystalCommunicator.ocd/StringTblUS.txt @@ -0,0 +1,5 @@ +Name=Build crystal communicator + +#Goal window +MsgGoalFulfilled=Congratulations, the crystal communicator is done. +MsgGoalUnfulfilled=Find the missing components and bring them to the crystal communicator construction site! diff --git a/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/Map.c b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/Map.c new file mode 100644 index 000000000..2e926e0e5 --- /dev/null +++ b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/Map.c @@ -0,0 +1,275 @@ +/** + Blue lake + Dynamic map with a big lake containing islands of material + Plus lava basins with gems at the bottom + Parts adapted from Gem Grabbers by Maikel + + @authors Sven2 +*/ + +#include Library_Map + +// zoomed coordinates for scenario script +static main_island_x, main_island_y; +static goal_platform_x, goal_platform_y; + +// set after intro to force map creation +static g_intro_done; + +// Called be the engine: draw the complete map here. +public func InitializeMap(proplist map) +{ + if (!g_intro_done) return true; + Resize(300,400); + this.sea_y = 50; + this.ground_y = 350; + this.map_zoom = 7; + main_island_x = this.Wdt/2 * this.map_zoom; + main_island_y = this.sea_y * this.map_zoom; + + Draw("Water", nil, [0,this.sea_y,this.Wdt,this.Hgt]); + DrawMainIsland(80); + DrawGround(); + + // Regular resource islands + DrawSecondaryIslands(3, 15, [["Ore", 50], ["Coal", 40]], true); + DrawSecondaryIslands(10, 6, [["Firestone", 70]], false); + DrawSecondaryIslands(3, 8, [["Gold", 40]], true); + + // Amethyst islands + var i=0, imod=Random(2); + while (i<3 || GetPixelCount("Amethyst")<15) + { + DrawSecondaryIsland(8, [["Amethyst", 70]], true, [0, this.Wdt-70][(i+imod)%2], 70, this.sea_y+50); + ++i; + } + + FixLiquidBorders("Earth"); + + // Ensure that left and right side are always open because they're used for water refill + Draw("Sky", nil, [0,0,1,this.sea_y]); + Draw("Sky", nil, [this.Wdt-1,0,1,this.sea_y]); + Draw("Water", nil, [0,this.sea_y,1,70]); + Draw("Water", nil, [this.Wdt-1,this.sea_y,1,70]); + + // Top level of water has sky background + Draw("^Water", Duplicate("Water"), [0,this.sea_y,this.Wdt,11]); + + // Return true to tell the engine a map has been successfully created. + return true; +} + +// Draws the main island with all basic resources +private func DrawMainIsland(int size) +{ + // Shape of the main island. Shape taken from Gem Grabbers. + var island_algo = {Algo = MAPALGO_Polygon}; + var x = this.Wdt / 2; + var y = this.sea_y; + island_algo.X = [x-size/3, x-size/2, x-size/3, x-size/6, x+size/6, x+size/3, x+size/2, x+size/3]; + island_algo.Y = [y-size/6, y, y+size/3, y+size/6, y+size/6, y+size/3, y, y-size/6]; + + // Draw the earth patch of the island. + island_algo = {Algo = MAPALGO_Turbulence, Iterations = 4, Op = island_algo}; + var island = CreateLayer(); + island->Draw("Earth", island_algo); + + // Draw goal platform shape + while (island->GetPixel(x,y)) ++x; // Find right side of island at sea level + var platform_algo = {Algo = MAPALGO_Polygon}; + platform_algo.X = [x-5,x+14,x+14,x+7,x ,x-5]; + platform_algo.Y = [y ,y ,y+ 1,y+2,y+4,y ]; + island->Draw("Earth", platform_algo); + + // Preserve drawn island shape for border algorithms + var island_shape = island->Duplicate(); + + // Overlay a set of materials inside the island. + DrawIslandMat("Earth-earth_dry", island, 4, 30, true); + DrawIslandMat("Earth-earth_midSoil", island, 3, 30, true); + DrawIslandMat("Tunnel", island, 3, 10, true); + //DrawIslandMat("Water", island, 4, 8); + //DrawIslandMat("Gold", island, 3, 6); + DrawIslandMat("Ore", island, 6, 18, true); + DrawIslandMat("Coal", island, 6, 18, true); + DrawIslandMat("Firestone", island, 6, 12, true); + + // Draw a top border out of sand and top soil. + var sand_border = {Algo = MAPALGO_And, Op = [{Algo = MAPALGO_Border, Op = island_shape, Top = [-1,2]}, {Algo = MAPALGO_RndChecker, Ratio = 50, Wdt = 4, Hgt = 3}]}; + var topsoil_border = {Algo = MAPALGO_And, Op = [{Algo = MAPALGO_Border, Op = island_shape, Top = [-1,3]}, {Algo = MAPALGO_RndChecker, Ratio = 40, Wdt = 4, Hgt = 2}]}; + island->Draw("Sand", sand_border); + island->Draw("Earth-earth_topSoil", topsoil_border); + + // Draw a bottom border out of granite and rock. + var granite_border = {Algo = MAPALGO_Border, Op = island_shape, Bottom = [-4,3]}; + island->Draw("Granite", granite_border); + var rock_border = {Algo = MAPALGO_RndChecker, Ratio = 20, Wdt = 2, Hgt = 2}; + island->Draw("Rock", {Algo = MAPALGO_And, Op = [granite_border, rock_border]}); + island->Draw("Rock-rock_cracked", {Algo = MAPALGO_And, Op = [granite_border, rock_border]}); + + // Draw goal platform + island->Draw("Sky", nil, [x,y-10,14,10]); + island->Draw("Brick", nil, [x,y,14,2]); + goal_platform_x = (x+7)*this.map_zoom; + goal_platform_y = y *this.map_zoom; + + // Draw island onto main map + Blit(island); + + return true; +} + +// Draws multiple underwater resource islands +private func DrawSecondaryIslands(int n, ...) +{ + for (var i=0; iDraw("Earth", island_algo); + var island_shape = island->Duplicate(); + + DrawIslandMat("Earth-earth_dry", island, 4, 30); + DrawIslandMat("Earth-earth_midSoil", island, 3, 30); + + // Overlay a set of materials inside the island. + for (var mat in materials) + { + DrawIslandMat(mat[0], island, 3, mat[1], has_border); + } + + // Draw a border out of granite and rock. + if (has_border) + { + var island_shape = island->Duplicate(); + var granite_border = {Algo = MAPALGO_Border, Op = island_shape, Top = [-2,2]}; + island->Draw("Granite", granite_border); + var rock_border = {Algo = MAPALGO_RndChecker, Ratio = 20, Wdt = 2, Hgt = 2}; + island->Draw("Rock", {Algo = MAPALGO_And, Op = [granite_border, rock_border]}); + island->Draw("Rock-rock_cracked", {Algo = MAPALGO_And, Op = [granite_border, rock_border]}); + } + + // Draw island onto main map + Blit(island); + + return true; +} + +private func DrawGround() +{ + // Bottom of the sea + var ground_algo = { Algo = MAPALGO_Rect, X=-100, Y=this.ground_y, Wdt=this.Wdt+200, Hgt=this.Hgt-this.ground_y+1000 }; + ground_algo = {Algo = MAPALGO_Turbulence, Iterations = 4, Amplitude = [10,100], Scale = 20, Op = ground_algo }; + var ground2_algo = { Algo = MAPALGO_Rect, X=-100, Y=this.Hgt-10, Wdt=this.Wdt+200, Hgt=this.Hgt-this.ground_y+1000 }; + ground2_algo = {Algo = MAPALGO_Turbulence, Iterations = 2, Amplitude = 10, Scale = 30, Op = ground2_algo }; + var ground = CreateLayer(); + // Ensure lots of earth + while (true) + { + ground->Draw("Earth", ground_algo); + ground->Draw("Granite", ground2_algo); + if (ground->GetPixelCount("Earth") > 10000) break; + } + ground->Draw("DuroLava", {Algo=MAPALGO_Turbulence, Amplitude=10, Scale=20, Iterations=3, Op={Algo=MAPALGO_And, Op=[ground->Duplicate("Granite"), {Algo = MAPALGO_RndChecker, Ratio=50, Wdt=30, Hgt=2}]}}); + // Granite/Rock top border + ground->Draw("Granite", {Algo = MAPALGO_Turbulence, Amplitude = 5, Iterations = 1, Op = {Algo = MAPALGO_Border, Op = ground->Duplicate(), Top= [-2,2]}}); + ground->Draw("Rock", {Algo=MAPALGO_And, Op=[ground->Duplicate("Granite"), {Algo = MAPALGO_RndChecker, Ratio = 40, Wdt = 2, Hgt = 2}]}); + // Alterations in earth material + DrawIslandMat("Earth-earth_dry", ground, 12, 60, false); + DrawIslandMat("Earth-earth_midSoil", ground, 8, 60, false); + // Gem spots + var gem_spots = CreateLayer(); + var earth_mats = CreateMatTexMask("Earth"); + var i=0; + while (i<3 || gem_spots->GetPixelCount("Ruby") < 15) + { + var gem_mat = "Ruby"; + // Find an earth spot + var pos = {X=Random(this.Wdt), Y=this.Hgt/2+Random(this.Hgt/2)}; + ground->FindPosition(pos, "Earth"); + // Find center of this earth area + var x=pos.X, y=pos.Y; + var x0=x-1, x1=x+1, y0=y-1, y1=y+1; + while (earth_mats[ground->GetPixel(x,y0)]) --y0; + while (earth_mats[ground->GetPixel(x,y1)]) ++y1; + y=Min((y0+y1)/2, this.Hgt-6); + while (earth_mats[ground->GetPixel(x0,y)]) --x0; + while (earth_mats[ground->GetPixel(x1,y)]) ++x1; + x=(x0+x1)/2; + var size = 9; + // Lava basin here + var lava_algo = {Algo = MAPALGO_Ellipsis, X=x, Y=y, Wdt=size, Hgt=size}; + lava_algo = {Algo = MAPALGO_Turbulence, Amplitude = 5, Iterations = 5, Op = lava_algo}; + gem_spots->Draw("DuroLava", lava_algo); + // Gems at bottom center + y += 2; + size = 3; + var gem_algo = {Algo = MAPALGO_Ellipsis, X=x, Y=y, Wdt=size, Hgt=size}; + gem_algo = {Algo = MAPALGO_Turbulence, Amplitude = 3, Iterations = 1, Op = gem_algo}; + gem_spots->Draw(gem_mat, gem_algo); + // Draw to map + ground->Blit(gem_spots); + ++i; + } + // Lava basins surrounded by granite + ground->Draw("Rock", {Algo=MAPALGO_And, Op=[{Algo=MAPALGO_Not, Op=gem_spots}, {Algo = MAPALGO_Turbulence, Amplitude = 5, Iterations = 5, Op = {Algo = MAPALGO_Border, Op = gem_spots, Wdt=-4}}]}); + ground->Draw("Granite", {Algo = MAPALGO_Border, Op = gem_spots, Wdt=-1}); + // Lots of rocks + DrawIslandMat("Rock-rock_cracked", ground, 2, 20, false); + DrawIslandMat("Rock", ground, 2, 20, false); + // And some lava + DrawIslandMat("DuroLava", ground, 2, 20, false); + // Other materials (rare) + DrawIslandMat("Ore", ground, 12, 8, false); + DrawIslandMat("Coal", ground, 12, 8, false); + DrawIslandMat("Gold", ground, 12, 8, false); + DrawIslandMat("Firestone", ground, 12, 8, false); + Blit(ground); + return true; +} + +// Draws some material inside an island. +private func DrawIslandMat(string mat, proplist onto_mask, int speck_size, int ratio, has_border) +{ + if (!speck_size) + speck_size = 3; + if (!ratio) + ratio = 20; + // Use random checker algorithm to draw patches of the material. + var rnd_checker = {Algo = MAPALGO_RndChecker, Ratio = ratio, Wdt = speck_size, Hgt = speck_size}; + rnd_checker = {Algo = MAPALGO_Turbulence, Iterations = 4, Op = rnd_checker}; + var algo; + if (has_border) + { + var mask_border = {Algo = MAPALGO_Border, Op = onto_mask, Wdt = 3}; + algo = {Algo = MAPALGO_And, Op = [{Algo = MAPALGO_Xor, Op = [onto_mask->Duplicate("Earth"), mask_border]}, rnd_checker]}; + } + else + { + algo = {Algo = MAPALGO_And, Op = [onto_mask->Duplicate("Earth"), rnd_checker]}; + } + onto_mask->Draw(mat, algo); + + return true; +} diff --git a/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/Scenario.txt b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/Scenario.txt new file mode 100644 index 000000000..160de96b1 --- /dev/null +++ b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/Scenario.txt @@ -0,0 +1,57 @@ +[Head] +Title=DeepSeaMining +Icon=31 +Version=6,0 +Difficulty=30 +MissionAccess=S2Crash + +[Definitions] +Definition1=Objects.ocd + +[Game] +Rules=Rule_TeamAccount=1;Rule_BuyAtFlagpole=1;Rule_BaseRespawn=1; +Goals=Goal_BuildCrystalCommunicator=1; +ValueOverloads=Ruby=10;Amethyst=10 + +[Player1] +Wealth=25 +Crew=Clonk=2 +Knowledge=Flagpole=1;Foundry=1;WindGenerator=1;SteamEngine=1;Compensator=1;Sawmill=1;ChemicalLab=1;Elevator=1;Pump=1;ToolsWorkshop=1;Basement=1;WallKit=1;GoldBar=1;Loam=1;Metal=1;Axe=1;Barrel=1;Bucket=1;Dynamite=1;Hammer=1;JarOfWinds=1;Pickaxe=1;Pipe=1;Shovel=1;TeleGlove=1;DynamiteBox=1;Lorry=1; +BaseMaterial=Clonk=25;Bread=25; +BaseProduction=Clonk=25;Bread=25; + +[Player2] +Wealth=25 +Crew=Clonk=2 +Knowledge=Flagpole=1;Foundry=1;WindGenerator=1;SteamEngine=1;Compensator=1;Sawmill=1;ChemicalLab=1;Elevator=1;Pump=1;ToolsWorkshop=1;Basement=1;WallKit=1;GoldBar=1;Loam=1;Metal=1;Axe=1;Barrel=1;Bucket=1;Dynamite=1;Hammer=1;JarOfWinds=1;Pickaxe=1;Pipe=1;Shovel=1;TeleGlove=1;DynamiteBox=1;Lorry=1; +BaseMaterial=Clonk=25;Bread=25; +BaseProduction=Clonk=25;Bread=25; + +[Player3] +Wealth=25 +Crew=Clonk=2 +Knowledge=Flagpole=1;Foundry=1;WindGenerator=1;SteamEngine=1;Compensator=1;Sawmill=1;ChemicalLab=1;Elevator=1;Pump=1;ToolsWorkshop=1;Basement=1;WallKit=1;GoldBar=1;Loam=1;Metal=1;Axe=1;Barrel=1;Bucket=1;Dynamite=1;Hammer=1;JarOfWinds=1;Pickaxe=1;Pipe=1;Shovel=1;TeleGlove=1;DynamiteBox=1;Lorry=1; +BaseMaterial=Clonk=25;Bread=25; +BaseProduction=Clonk=25;Bread=25; + +[Player4] +Wealth=25 +Crew=Clonk=2 +Knowledge=Flagpole=1;Foundry=1;WindGenerator=1;SteamEngine=1;Compensator=1;Sawmill=1;ChemicalLab=1;Elevator=1;Pump=1;ToolsWorkshop=1;Basement=1;WallKit=1;GoldBar=1;Loam=1;Metal=1;Axe=1;Barrel=1;Bucket=1;Dynamite=1;Hammer=1;JarOfWinds=1;Pickaxe=1;Pipe=1;Shovel=1;TeleGlove=1;DynamiteBox=1;Lorry=1; +BaseMaterial=Clonk=25;Bread=25; +BaseProduction=Clonk=25;Bread=25; + +[Landscape] +Sky=Clouds2 +TopOpen=1 +BottomOpen=0 +AutoScanSideOpen=1 +MapWidth=300 +MapHeight=400 +MapZoom=7 + +[Weather] +Climate=0 +StartSeason=0 +YearSpeed=0 +Wind=0,100,-100,100 diff --git a/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/Script.c b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/Script.c new file mode 100644 index 000000000..f571edc2a --- /dev/null +++ b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/Script.c @@ -0,0 +1,300 @@ +/** + Deep Sea Mining + Mine gems buried deeply below the ocean. + + @authors Sven2 +*/ + +// set in Map.c +static main_island_x, main_island_y; +static goal_platform_x, goal_platform_y; + +static const SCEN_TEST = false; + +static g_is_initialized, g_is_in_intro, g_intro_done, npc_tuesday, g_tuesday_pos; + +protected func PostIntroInitialize() +{ + // Construction site on goal platform + var goal_site = CreateObject(ConstructionSite, goal_platform_x+10, goal_platform_y+3); + goal_site->Set(CrystalCommunicator); + goal_site->MakeUncancellable(); + if (SCEN_TEST) + { + for (var i=0; i<6; ++i) + { + goal_site->CreateObject(Metal,-20); + goal_site->CreateObject(Ruby,0); + goal_site->CreateObject(Amethyst,20); + } + goal_site->CreateContents(Metal,6); + goal_site->CreateContents(Ruby,6); + goal_site->CreateContents(Amethyst,5); + } + + // Initialize different parts of the scenario. + InitEnvironment(); + InitVegetation(); + InitAnimals(); + InitMainIsland(); + + // NPC + g_tuesday_pos = FindMainIslandPosition(0, 100, true); + npc_tuesday = CreateObject(Clonk, g_tuesday_pos[0]+20, g_tuesday_pos[1]-10); + npc_tuesday->SetDir(DIR_Left); + npc_tuesday->SetColor(0x804000); + npc_tuesday->SetName("$Tuesday$"); + + return true; +} + +func DoInit(int first_player) +{ + StartSequence("Intro", 0, GetCrew(first_player)); + return true; +} + +protected func InitializePlayer(int plr) +{ + // intro has its own initialization + if (g_is_in_intro) return true; + + // Harsh zoom range + SetPlayerZoomByViewRange(plr, 500, 350, PLRZOOM_LimitMax); + SetPlayerZoomByViewRange(plr, 500, 350, PLRZOOM_Direct); + SetPlayerViewLock(plr, true); + + // Intro + if (!g_is_initialized) g_is_initialized = DoInit(plr); + if (!g_intro_done) return true; + + // Position and materials + var i, crew; + for (i = 0; crew = GetCrew(plr, i); ++i) + { + var pos = FindMainIslandPosition(); + crew->SetPosition(pos[0], pos[1] - 11); + crew->CreateContents(Shovel); + if (SCEN_TEST) + { + var cs = FindObject(Find_ID(ConstructionSite)); + crew->SetPosition(cs->GetX(), cs->GetY()-20); + } + } + + // Claim ownership of unowned structures + for (var structure in FindObjects(Find_Or(Find_Category(C4D_Structure), Find_Func("IsFlagpole")), Find_Owner(NO_OWNER))) + { + structure->SetOwner(plr); + structure->~RefreshOwnershipOfSurrounding(); + } + + // Should be done in OnOwnerChanged? It doesn't happen ATM. + RedrawAllFlagRadiuses(); + + return; +} + +// Initializes environment and disasters. +private func InitEnvironment() +{ + // Water refill from sides + var initial_water_level = 0; + while (GetMaterial(0,initial_water_level) != Material("Water")) ++initial_water_level; + ScheduleCall(nil, this.EnsureWaterLevel, 20, 999999999, initial_water_level); + + // Set a certain parallax. + SetSkyParallax(0, 20, 20); + + // Ambience sounds + CreateObject(Ambience); + + // No disasters for now + //Meteor->SetChance(5); Cloud->SetLightning(16); + + return; +} + +// Ensures that the sea doesn't disappear +func EnsureWaterLevel(int level, bool no_recursion) +{ + var water_mat = Material("Water"); + if (GetMaterial(0,level) != water_mat) CastPXS("Water", 100, 20, 0,level, 90, 10); + if (GetMaterial(LandscapeWidth()-1,level) != water_mat) CastPXS("Water", 100, 20, LandscapeWidth()-1,level, 270, 10); + // Extra insertion at a lower level so it's not easy to block off + if (!no_recursion && !Random(3)) EnsureWaterLevel(level + 50 + Random(450), true); + return true; +} + +private func InitVegetation() +{ + // Grass on starting island. + PlaceGrass(85); + + // Place some cocont trees all around the main island + for (var i = 0; i < 10 + Random(8); i++) + PlaceVegetation(Tree_Coconut, 0, 0, LandscapeWidth(), LandscapeHeight(), 1000 * (61 + Random(40))); + + // Create an effect to make sure there will always grow some new trees. + ScheduleCall(nil, this.EnsureTrees, 100, 999999999); + + // Some objects in the earth. + PlaceObjects(Rock, 10 + Random(10),"Earth"); + PlaceObjects(Firestone, 35 + Random(5), "Earth"); + PlaceObjects(Loam, 25 + Random(5), "Earth"); + + // Underwater vegetation + Seaweed->Place(20); + Coral->Place(30); + + return; +} + +// Ensures that there will always grow some trees on the main island. +func EnsureTrees() +{ + var wdt = LandscapeWidth(); + var hgt = LandscapeHeight(); + // Place a tree if there are less than eight trees, with increasing likelihood for lower amounts of trees. + var nr_trees = ObjectCount(Find_Func("IsTree"), Find_Func("IsStanding")); + if (Random(9) >= nr_trees) + if (!Random(20)) + PlaceVegetation(Tree_Coconut, main_island_x - 300, main_island_y - 200, 600, 400, 3); + return true; +} + +private func InitAnimals() +{ + // Place fish in upper ocean area (there tend to be small basins below, where lots of fish could get stuck) + var fish_area = GetFishArea(); + Fish->Place(50, fish_area); + Piranha->Place(25, fish_area); + ScheduleCall(nil, this.EnsureAnimals, 237, 999999999); + return true; +} + +private func GetFishArea() { return Rectangle(50, main_island_y, LandscapeWidth() - 100, LandscapeHeight()/2 - main_island_y); } + +private func EnsureAnimals() +{ + if (ObjectCount(Find_ID(Fish), Find_Not(Find_Action("Dead"))) < 50) DoFishSpawn(Fish); + if (ObjectCount(Find_ID(Piranha), Find_Not(Find_Action("Dead"))) < 25) DoFishSpawn(Piranha); + return true; +} + +private func DoFishSpawn(fish_type) +{ + // Try placement away from Clonks. If a Clonk was nearby, just remove it immediately. + var fish = fish_type->Place(1, GetFishArea()); + if (fish) + if (fish->FindObject(fish->Find_Distance(300), Find_ID(Clonk), Find_OCF(OCF_Alive))) + fish->RemoveObject(); + return fish; +} + +// Initializes the main island according to the material specification. +private func InitMainIsland() +{ + var amount = 3; + var pos; + + // Always start with a lorry filled with: hammer(x2), axe(x2), wood(x6) and metal(x4). + var lorry_pos = FindMainIslandPosition(0, 80); + var lorry = CreateObject(Lorry, lorry_pos[0], lorry_pos[1] - 8); + lorry->CreateContents(Hammer, 2); + lorry->CreateContents(Axe, 2); + lorry->CreateContents(Wood, 6); + lorry->CreateContents(Metal, 4); + + // If more material is specified, create a small settlement: flag(x2) and windmill. + // Also fill lorry a bit more with: pickaxe(x1), dynamite(x4), wood(x4), metal(x2). + if (amount >= 2) + { + pos = FindMainIslandPosition(-120, 20); + CreateObject(Flagpole, pos[0]-7, pos[1]); + var rfp = CreateObject(Flagpole, pos[0]+7, pos[1]); + rfp->SetNeutral(true); + pos = FindMainIslandPosition(120, 20); + CreateObject(Flagpole, pos[0], pos[1]); + pos = FindMainIslandPosition(nil, nil, true); + CreateObject(WindGenerator, pos[0], pos[1]); + lorry->CreateContents(Wood, 4); + lorry->CreateContents(Metal, 2); + lorry->CreateContents(Pickaxe, 1); + lorry->CreateContents(Dynamite, 4); + } + + // If still more material is specified, create a larger settlement: sawmill, chemical lab, tools workshop. + // Also fill lorry a bit more with: Barrel (x1), Bucket(x1), Loam(x4), DynamiteBox(x2). + if (amount >= 3) + { + pos = FindMainIslandPosition(nil, nil, true); + CreateObject(Sawmill, pos[0], pos[1]); + pos = FindMainIslandPosition(nil, nil, true); + CreateObject(ChemicalLab, pos[0], pos[1]); + pos = FindMainIslandPosition(nil, nil, true); + CreateObject(ToolsWorkshop, pos[0], pos[1]); + + lorry->CreateContents(Barrel, 1); + lorry->CreateContents(Bucket, 1); + lorry->CreateContents(Loam, 4); + lorry->CreateContents(DynamiteBox, 1); + lorry->CreateContents(WallKit, 4); + //lorry->CreateContents(Boompack, 1); + } + + return; +} + +// Tries to find a position on the main island. +private func FindMainIslandPosition(int xpos, int sep, bool no_struct) +{ + if (xpos == nil) + xpos = 0; + if (sep == nil) + sep = 250; + + for (var i = 0; i < 100; i++) + { + var x = main_island_x + xpos + Random(sep*2+1)-sep; + var y = main_island_y / 2 - 220; + + while (!GBackSolid(x, y) && y < LandscapeHeight()*3/4) + y++; + + if (GetMaterial(x,y) == Material("Brick")) continue; // not on goal platform + + if (!no_struct || !FindObject(Find_Or(Find_Category(C4D_Structure), Find_Func("IsFlagpole"), Find_ID(WindGenerator)), Find_Distance(60, x, y))) + break; + } + + return [x, y]; +} + + +/* Outro */ + +// Goal fulfilled +public func OnGoalsFulfilled() +{ + SetNextMission("Missions.ocf/TreasureHunt.ocs"); + GainScenarioAchievement("Done"); + GainMissionAccess("S2Sea"); + StartSequence("Outro", 0); + // Return true to force goal rule to not call GameOver() yet + return true; +} + + +// Intro helper + +global func Particles_Smoke(...) +{ + var p = inherited(...); + if (g_intro_sky_moving) + { + p.ForceX = -300; + p.DampingX = 800; + } + return p; +} \ No newline at end of file diff --git a/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/SectIntro.ocg/Map.bmp b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/SectIntro.ocg/Map.bmp new file mode 100644 index 000000000..2c28be1e6 Binary files /dev/null and b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/SectIntro.ocg/Map.bmp differ diff --git a/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/SectIntro.ocg/Scenario.txt b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/SectIntro.ocg/Scenario.txt new file mode 100644 index 000000000..a0dc63fe4 --- /dev/null +++ b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/SectIntro.ocg/Scenario.txt @@ -0,0 +1,5 @@ +[Landscape] +BottomOpen=0 +TopOpen=1 +MapZoom=20,0,5,20 +Sky=Clouds2 diff --git a/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/StringTblDE.txt b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/StringTblDE.txt new file mode 100644 index 000000000..92bdf6c9d --- /dev/null +++ b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/StringTblDE.txt @@ -0,0 +1 @@ +Tuesday=Dienstag diff --git a/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/StringTblUS.txt b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/StringTblUS.txt new file mode 100644 index 000000000..7ca85b75d --- /dev/null +++ b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/StringTblUS.txt @@ -0,0 +1 @@ +Tuesday=Tuesday diff --git a/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/System.ocg/DlgTuesday.c b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/System.ocg/DlgTuesday.c new file mode 100644 index 000000000..cd1a41770 --- /dev/null +++ b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/System.ocg/DlgTuesday.c @@ -0,0 +1,48 @@ +// NPC Tuesday: Sits on the island and does nothing +// (except giving some hints) + +#appendto Dialogue + +func Dlg_Tuesday_1(object clonk) +{ + MessageBox("$Tuesday1$", clonk, dlg_target); + return true; +} + +func Dlg_Tuesday_2(object clonk) +{ + var options = [["$TuesdayQCommunicator$", "Dlg_Tuesday_Communicator"], ["$TuesdayQGems$", "Dlg_Tuesday_Gems"], ["$TuesdayQFish$", "Dlg_Tuesday_Fish"], ["$TuesdayQWater$", "Dlg_Tuesday_Water"], ["$TuesdayQBye$", "StopDialogue()"]]; + MessageBox("", clonk, clonk, nil, false, options); + SetDialogueProgress(1); + return true; +} + +func Dlg_Tuesday_Communicator(object clonk, q) +{ + SetDialogueProgress(2); + return MessageBox("$TuesdayACommunicator$", clonk); +} + +func Dlg_Tuesday_Gems(object clonk, q) +{ + SetDialogueProgress(2); + return MessageBox("$TuesdayAGems$", clonk); +} + +func Dlg_Tuesday_Fish(object clonk, q) +{ + SetDialogueProgress(2); + return MessageBox("$TuesdayAFish$", clonk); +} + +func Dlg_Tuesday_Water(object clonk, q) +{ + SetDialogueProgress(10); + return MessageBox("$TuesdayAWater$", clonk); +} + +func Dlg_Tuesday_10(object clonk) +{ + SetDialogueProgress(2); + return MessageBox("$TuesdayAWater2$", clonk); +} diff --git a/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/System.ocg/Gems_NoSell.c b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/System.ocg/Gems_NoSell.c new file mode 100644 index 000000000..ea9777df2 --- /dev/null +++ b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/System.ocg/Gems_NoSell.c @@ -0,0 +1,2 @@ +#appendto Ruby +func IsValuable(){} \ No newline at end of file diff --git a/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/System.ocg/SeqIntro.c b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/System.ocg/SeqIntro.c new file mode 100644 index 000000000..f189dbc0e --- /dev/null +++ b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/System.ocg/SeqIntro.c @@ -0,0 +1,271 @@ +#appendto Sequence + +static g_intro_sky_moving; +static npc_tuesday; + +func Intro_Start() +{ + // Intro starts high up in the clouds + LoadScenarioSection("Intro"); + SetPlayList("skyisland", NO_OWNER, true); + SetWind(-100); + SetSkyParallax(0, 20, 20, -10, 0); + + this.plane = CreateObject(Plane, 500, 200); + this.plane->SetColor(0xa04000); + this.pilot = CreateObject(Clonk, 100, 100, NO_OWNER); + this.pilot->MakeInvincible(); + this.pilot->MakeNonFlammable(); + this.pilot->SetSkin(2); + this.pilot->Enter(this.plane); + this.pilot->SetAction("Walk"); + + this.pilot->SetName("Pyrit"); + this.pilot->SetColor(0xff0000); + this.pilot->SetDir(DIR_Left); + this.pilot->SetObjectLayer(this.pilot); + + this.plane.FxIntPlaneTimer = this.Intro_PlaneTimer; + RemoveEffect("IntPlane", this.plane); + AddEffect("IntPlane",this.plane,1,1,this.plane); + this.plane->FaceRight(); + this.plane->StartInstantFlight(90, 0); + g_intro_sky_moving = true; + + + SetViewTarget(this.plane); + + return ScheduleNext(100, 1); +} + +func Intro_PlaneTimer(...) +{ + // Plane flight overload: Just move sky and have plane do turbulent movement during initial part of intro + var rv = Call(Plane.FxIntPlaneTimer, ...); + if (g_intro_sky_moving) + { + if (!Random(4)) this.rdir = BoundBy((80+Random(21)-GetR())/5,-1,1); + SetXDir(); SetYDir(GetR()*2-GetY()+Random(5),10); + } + return rv; +} + +func Intro_JoinPlayer(int plr) +{ + if (g_intro_done) return false; // too late for join - just join on island + for(var index = 0, crew; crew = GetCrew(plr, index); ++index) crew->Enter(this); + return true; +} + +func Intro_1() +{ + MessageBoxAll("$Intro1$", GetHero(), true); // y clouds? + return ScheduleNext(200); +} + +func Intro_2() +{ + MessageBoxAll("$Intro2$", this.pilot, true); // cuz u told me + return ScheduleNext(300); +} + +func Intro_3() +{ + MessageBoxAll("$Intro3$", GetHero(), true); // 2 turbulent + return ScheduleNext(200); +} + +func Intro_4() +{ + MessageBoxAll("$Intro4$", this.pilot, true); // cuz condensation + return ScheduleNext(380); +} + +func Intro_5() +{ + MessageBoxAll("$Intro5$", GetHero(), true); // go lower now + return ScheduleNext(300); +} + +func Intro_6() +{ + MessageBoxAll("$Intro6$", this.pilot, true); // fuk u + return ScheduleNext(450); +} + +func Intro_7() +{ + MessageBoxAll("$Intro7$", this.pilot, true); // u fly + return ScheduleNext(200); +} + +func Intro_8() +{ + MessageBoxAll("$Intro8$", GetHero(), true); // ... + return ScheduleNext(100); +} + +func Intro_9() +{ + MessageBoxAll("$Intro9$", GetHero(), true); // ok + return ScheduleNext(150); +} + +func Intro_10() +{ + g_intro_sky_moving = false; + this.plane.rdir = 0; + this.plane->StartInstantFlight(this.plane->GetR(), 15); + MessageBoxAll("$Intro10$", GetHero(), true); // aaaah + for (var i=0,plr; iExit(); + crew->SetPosition(this.plane->GetX()+10, this.plane->GetY()); + crew->SetAction("Tumble"); + if (!index) SetPlrView(plr, crew); + } + } + SetViewTarget(); + return ScheduleNext(200, 11); +} + +func Intro_11() +{ + g_intro_done = true; + LoadScenarioSection("main"); + SetWind(0); + SetSkyParallax(0, 20, 20, 0, 0); + GameCall("PostIntroInitialize"); + for (var i=0,plr; iSetPosition(g_tuesday_pos[0],-100); + crew->SetXDir(-10); crew->SetYDir(-30); + if (!index) SetPlrView(plr, crew); + } + } + return ScheduleNext(200, 20); +} + +func Intro_20() +{ + MessageBoxAll("$Intro20$", GetHero(), true); // ouch + for (var i=0,plr; iSetCommand("MoveTo", nil, g_tuesday_pos[0]-15+Random(20), g_tuesday_pos[1]); + } + } + return ScheduleNext(300); +} + +func Intro_21() +{ + Dialogue->SetSpeakerDirs(npc_tuesday, GetHero()); + MessageBoxAll("$Intro21$", npc_tuesday, true); // hi friend + return ScheduleNext(300); +} + +func Intro_22() +{ + MessageBoxAll("$Intro22$", GetHero(), true); // where is plane? + return ScheduleNext(300); +} + +func Intro_23() +{ + MessageBoxAll("$Intro23$", npc_tuesday, true); // 2 cloudy 4 plane + return ScheduleNext(350); +} + +func Intro_24() +{ + MessageBoxAll("$Intro24$", GetHero(), true); // but i need plane + return ScheduleNext(250); +} + +func Intro_25() +{ + MessageBoxAll("$Intro25$", npc_tuesday, true); // u stay here + return ScheduleNext(300); +} + +func Intro_26() +{ + MessageBoxAll("$Intro26$", GetHero(), true); // make fire? + return ScheduleNext(300); +} + +func Intro_27() +{ + MessageBoxAll("$Intro27$", npc_tuesday, true); // fire sux + return ScheduleNext(400); +} + +func Intro_28() +{ + MessageBoxAll("$Intro28$", npc_tuesday, true); // use communicator + return ScheduleNext(300); +} + +func Intro_29() +{ + MessageBoxAll("$Intro29$", GetHero(), true); // ok. where? + return ScheduleNext(250); +} + +func Intro_30() +{ + MessageBoxAll("$Intro30$", npc_tuesday, true); // not built yet + return ScheduleNext(450); +} + +func Intro_31() +{ + MessageBoxAll("$Intro31$", npc_tuesday, true); // go east and finish it with metal+gems + return ScheduleNext(400); +} + +func Intro_32() +{ + MessageBoxAll("$Intro32$", GetHero(), true); // where gems? + return ScheduleNext(250); +} + +func Intro_33() +{ + MessageBoxAll("$Intro33$", npc_tuesday, true); // fish say gems in sea + return ScheduleNext(400); +} + +func Intro_34() +{ + MessageBoxAll("$Intro34$", GetHero(), true); // fish talk? + return ScheduleNext(150); +} + +func Intro_35() +{ + MessageBoxAll("$Intro35$", npc_tuesday, true); // coconut talk! + return ScheduleNext(200); +} + +func Intro_36() +{ + MessageBoxAll("$Intro36$", GetHero(), true); // ok... + return ScheduleNext(150); +} + +func Intro_37() +{ + npc_tuesday->SetDialogue("Tuesday", true); + return Stop(); +} diff --git a/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/System.ocg/SeqOutro.c b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/System.ocg/SeqOutro.c new file mode 100644 index 000000000..ad357c033 --- /dev/null +++ b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/System.ocg/SeqOutro.c @@ -0,0 +1,106 @@ +#appendto Sequence + +func Outro_Start() +{ + this.communicator = FindObject(Find_Func("IsCrystalCommunicator")); + if (!this.communicator) return false; // what? + this.hero = this.communicator->FindObject(Find_ID(Clonk), Find_OCF(OCF_Alive), this.communicator->Sort_Distance()); + SetViewTarget(this.communicator); + // Outro + ScheduleCall(nil, this.Outro_Fade2Darkness, 15, 32, {}); + Dialogue->MessageBoxAll("$Outro1$", this.hero, true); // ok turn it on + return ScheduleNext(100); +} + +func Outro_1() +{ + this.communicator->StartCommunication(); // 250 frames + return ScheduleNext(650); +} + +func Outro_2() +{ + Dialogue->MessageBoxAll("$Outro2$", this.hero, true); // let's see if it works + return ScheduleNext(50); +} + +func Outro_3() +{ + this.communicator->SendCode("...---..."); // 159 frames + return ScheduleNext(200); +} + +func Outro_4() +{ + this.communicator->StopCommunication(); + MessageBoxAll("$Outro3$", this.hero, true); // i wonder if anyone has heard us + this.plane = CreateObject(Plane, 100, main_island_y-100); + this.plane->SetContactDensity(85); // only collision with brick for proper landing + this.pilot = CreateObject(Clonk, 100, 100); + this.pilot->MakeInvincible(); + this.pilot->SetSkin(2); + this.pilot->Enter(this.plane); + this.pilot->SetAction("Walk"); + this.pilot->SetName("Pyrit"); + this.pilot->SetColor(0xff0000); + this.pilot->SetDir(DIR_Right); + this.plane->FaceRight(); + this.plane->StartInstantFlight(90, 15); + return ScheduleNext(5); +} + +func Outro_5() +{ + // Wait for plane to arrive + if (this.plane->GetX() < this.communicator->GetX() - 200) return ScheduleSame(5); + // Plane in range! Ensure players see it. + SetPlayerZoomByViewRange(NO_OWNER, 500, 350, PLRZOOM_Direct | PLRZOOM_LimitMax); + MessageBoxAll("$Outro4$", this.pilot, true); // hey, our friends! + return ScheduleNext(100); +} + +func Outro_6() +{ + MessageBoxAll("$Outro5$", this.hero, true); // we're saved! + this.plane->StartInstantFlight(245, 15); + this.plane->SetContactDensity(C4M_Solid); + return ScheduleNext(60); +} + +func Outro_7() +{ + this.plane->StartInstantFlight(280, 5); + return ScheduleNext(15); +} + +func Outro_8() +{ + this.plane->CancelFlight(); + return ScheduleNext(40); +} + +func Outro_9() +{ + this.pilot->Exit(); + MessageBoxAll("$Outro6$", this.pilot, true); // hop on everyone! + return ScheduleNext(100); +} + +func Outro_10() +{ + this.plane->FaceRight(); + return ScheduleNext(100); +} + +func Outro_11() +{ + Sound("Fanfare"); + return GameOver(); +} + +func Outro_Fade2Darkness(proplist v) +{ + v.t += 8; + var fade_val = Max(0xff-v.t); + SetSkyAdjust(RGB(fade_val,fade_val,fade_val)); +} diff --git a/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/System.ocg/StringTblDE.txt b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/System.ocg/StringTblDE.txt new file mode 100644 index 000000000..3afb27cdc --- /dev/null +++ b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/System.ocg/StringTblDE.txt @@ -0,0 +1,48 @@ +Intro1=Pyrit, warum müssen wir in den Wolken fliegen? +Intro2=Du sagtest, wir sollen höher fliegen, nachdem wir fast im Vulkan gelandet waren. +Intro3=Es ist schrecklich turbulent hier. +Intro4=Das liegt daran, dass die Kondensation des Wassers in den Wolken Wärme freisetzt, die die Luft weiter aufsteigen lässt. +Intro5=Danke für den Vortrag. Können wir nun bitte tiefer fliegen? +Intro6=Erst ist es zu turbulent wenn ich tief fliege. Nun ist es zu turbulent wenn ich hoch fliege. +Intro7=Warum steuerst du das Flugzeug nicht einfach selber? +Intro8=... +Intro9=Okay. Wir tauschen Plätze! +Intro10=Aaaah + +Intro20=Autsch. +Intro21=Oh. Ein Freund ist vom Himmel gefallen. Hallo Freund! Mein Name ist Dienstag. +Intro22=Verdammt. Hast du unser Flugzeug gesehen? Ich bin versehentlich raus gefallen. +Intro23=Der Himmel ist hier stets bewölkt. Wir sehen kein Flugzeug und kein Flugzeug sieht uns. +Intro24=Ugh. Aber Pyrit muss uns irgendwie finden. +Intro25=Was auf der Insel strandet bleibt auf der Insel. Genau wie ich. +Intro26=Könnten wir nicht ein Feuer machen oder so? +Intro27=Feuer? Das wird nicht helfen. Kokosnussholz brennt schlecht und das Feuer würde durch die Wolken eh keiner sehen. +Intro28=Aber...wir könnten meinen Kristallkommunikator benutzen! +Intro29=Klingt gut. Wo steht der? +Intro30=Ich bin glücklich auf meiner Insel. Warum sollte ich ein Kommunikationsgerät bauen? Ich habe die Pläne fertig, aber mich nie bemüht es auch zu bauen. +Intro31=Die Baustelle und die Pläne befinden sich am Östlichen Ende dieser Insel. Du brauchst nur etwas Metall und ein paar Edelsteine. +Intro32=Metall klingt einfach. Aber wo finde ich Edelsteine? +Intro33=Die Fische sprechen manchmal über glitzernde Edelsteine tief unten im Meer. Vielleicht kannst du die abbauen? +Intro34=Fische sprechen mit dir? +Intro35=Wenn du nur zuhörst, sprechen sogar die Kokosnüsse! +Intro36=Okay...ich schaue mal nach der Baustelle. + +Tuesday1=Hallo, Freund. Wie kann ich dir helfen? +TuesdayQCommunicator=Wie benutze ich den Kommunikator? +TuesdayACommunicator=Bringe einfach das nötige Material zur Baustelle. Es wird automatisch funktionieren, wenn du es fertig stellst. +TuesdayQGems=Wo finde ich Edelsteine? +TuesdayAGems=Tauche ins Meer hinein. Die größten Schätze lagern tief unten und sind schwer erreichbar. +TuesdayQFish=Kannst du die Fische weg schicken? +TuesdayAFish=Ich bin nur ein Zuhörer. Ich belaste die freien Geschöpfe dieser Welt nicht mit unnötigen Verboten. +TuesdayQWater=Das wasser ist zu Tief. Wie komme ich an die Edelsteine? +TuesdayAWater=Du könntest probieren, Wandbausätze{{WallKit}} in der Werkzeughütte{{ToolsWorkshop}} zu bauen. Wandbausätze können benutzt werden, um stabile Wände auch unter Wasser zu errichten. Diese schützen dich vor den Fischen und schaffen Raum zum Atmen. +TuesdayAWater2=Mit Wandbausätzen und einer Pumpe solltest du die Edelsteine erreichen können. +TuesdayQBye=Tschüss. + +Outro1=Die Maschine ist fertig. Ob sie wohl funktioniert? +Outro2=Das sieht gut aus. Ich sende ein Notsignal... +Outro3=Hoffentlich hat uns jemand gehört. +Outro4=Hey, sind das nicht unsere gestrandeten Freunde? +Outro5=Hurra, wir sind gerettet! +Outro6=Alles einsteigen! Wir fliegen zum Goldenen Berg. + diff --git a/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/System.ocg/StringTblUS.txt b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/System.ocg/StringTblUS.txt new file mode 100644 index 000000000..83c2b432a --- /dev/null +++ b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/System.ocg/StringTblUS.txt @@ -0,0 +1,47 @@ +Intro1=Pyrit, why do we have to fly in the clouds? +Intro2=You told me to fly higher after we almost crashed into the volcano. +Intro3=It's horribly turbulent in here. +Intro4=That's because water condensation in the cloud frees up energy which heats up the air. +Intro5=Thanks for the lecture. Now can we please fly lower again? +Intro6=First it's too turbulent when i fly low over the volcano and now it's too turbulent when i fly up high in the clouds. +Intro7=Why don't you just steer the plane yourself? +Intro8=... +Intro9=Alright. Let's swap places. +Intro10=Aaaah + +Intro20=Ouch. +Intro21=Oh, a friend has fallen from the sky. Hello friend! My name is Tuesday. +Intro22=Damn. Have you seen our airplane? I accidentally dropped out of it. +Intro23=The sky is always cloudy here. We won't see any planes and planes won't see us. +Intro24=Ugh. But i need Pyrit to find me somehow. +Intro25=What lands on the island stays on the island. Just like me. +Intro26=Isn't there any way we could make a fire or something? +Intro27=Fire? That will do no good. Coconut wood doesn't burn well and it won't be seen through the clouds. +Intro28=But...we could use my crystal communicator! +Intro29=Sounds good. Where is it? +Intro30=I'm happy on this island. Why should i build a communication device? I've made plans but I haven't bothered to finish building it. +Intro31=The site and plans how to finish it are at the eastern end of this island. It just needs some metal and some gems. +Intro32=Metal sounds easy enough? Where can I find the gems? +Intro33=The fish sometimes talk about gem reserves deep below the ocean ground. Maybe you can mine those? +Intro34=Fish talk to you? +Intro35=If you listen carefully, even coconuts talk! +Intro36=Okay...i'll see if i can finish this construction. + +Tuesday1=Hello, friend. How can I help you? +TuesdayQCommunicator=How do I use the communicator? +TuesdayACommunicator=Just bring the necessery materials to the construction site. It should work automatically when completed. +TuesdayQGems=Where can I find gems? +TuesdayAGems=Try to dive underground. +TuesdayQFish=Can you tell the fish to go away? +TuesdayAFish=I'm a listener. I do not force restraints onto the free creatures of this world. +TuesdayQWater=The water is too deep. How can I reach the gems? +TuesdayAWater=You could try and build wall kits{{WallKit}} in the tools workshop{{ToolsWorkshop}}. Wall kits can be used to construct stable walls under water protect you from fish and give some room to breath. +TuesdayAWater2=Using wall kits and a pump, you might be able to solve your problems. +TuesdayQBye=Bye + +Outro1=The machine is done! I wonder whether it works. +Outro2=Looks good. Let's send a rescue signal... +Outro3=I wonder if anyone has heard us. +Outro4=Hey, isn't that our stranded friends? +Outro5=Hooray, we're saved! +Outro6=Hop on everyone, we're heading for the Golden Mountain! diff --git a/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/Title.txt b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/Title.txt new file mode 100644 index 000000000..84a978b8c --- /dev/null +++ b/planet/Experimental.ocf/Ambience_DeepSeaMining.ocs/Title.txt @@ -0,0 +1,2 @@ +DE:AmbienceTest: Tiefseemine +US:AmbienceTest: Deep sea mining \ No newline at end of file diff --git a/planet/Experimental.ocf/CableLorrys.ocs/CableCars.ocd/Libraries.ocd/CableCar.ocd/DefCore.txt b/planet/Experimental.ocf/CableLorrys.ocs/CableCars.ocd/Libraries.ocd/CableCar.ocd/DefCore.txt index fe3b2127b..83a65d607 100644 --- a/planet/Experimental.ocf/CableLorrys.ocs/CableCars.ocd/Libraries.ocd/CableCar.ocd/DefCore.txt +++ b/planet/Experimental.ocf/CableLorrys.ocs/CableCars.ocd/Libraries.ocd/CableCar.ocd/DefCore.txt @@ -1,4 +1,4 @@ [DefCore] id=Library_CableCar -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack diff --git a/planet/Experimental.ocf/CableLorrys.ocs/CableCars.ocd/Libraries.ocd/CableCar.ocd/Selector.ocd/DefCore.txt b/planet/Experimental.ocf/CableLorrys.ocs/CableCars.ocd/Libraries.ocd/CableCar.ocd/Selector.ocd/DefCore.txt index db9be04b2..8d76dc61d 100644 --- a/planet/Experimental.ocf/CableLorrys.ocs/CableCars.ocd/Libraries.ocd/CableCar.ocd/Selector.ocd/DefCore.txt +++ b/planet/Experimental.ocf/CableLorrys.ocs/CableCars.ocd/Libraries.ocd/CableCar.ocd/Selector.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=CableCar_Selector -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack Width=1 Height=1 diff --git a/planet/Experimental.ocf/CableLorrys.ocs/CableCars.ocd/Libraries.ocd/CableStation.ocd/DefCore.txt b/planet/Experimental.ocf/CableLorrys.ocs/CableCars.ocd/Libraries.ocd/CableStation.ocd/DefCore.txt index 8ec674315..47c7fe8dc 100644 --- a/planet/Experimental.ocf/CableLorrys.ocs/CableCars.ocd/Libraries.ocd/CableStation.ocd/DefCore.txt +++ b/planet/Experimental.ocf/CableLorrys.ocs/CableCars.ocd/Libraries.ocd/CableStation.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Library_CableStation -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack Width=20 Height=20 diff --git a/planet/Experimental.ocf/CableLorrys.ocs/CableCars.ocd/Structures.ocd/Crossing.ocd/CableLine.ocd/DefCore.txt b/planet/Experimental.ocf/CableLorrys.ocs/CableCars.ocd/Structures.ocd/Crossing.ocd/CableLine.ocd/DefCore.txt index e29956db3..730b971a3 100644 --- a/planet/Experimental.ocf/CableLorrys.ocs/CableCars.ocd/Structures.ocd/Crossing.ocd/CableLine.ocd/DefCore.txt +++ b/planet/Experimental.ocf/CableLorrys.ocs/CableCars.ocd/Structures.ocd/Crossing.ocd/CableLine.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=CableLine -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack Width=12 Height=8 diff --git a/planet/Experimental.ocf/CableLorrys.ocs/CableCars.ocd/Structures.ocd/Crossing.ocd/CableReel.ocd/DefCore.txt b/planet/Experimental.ocf/CableLorrys.ocs/CableCars.ocd/Structures.ocd/Crossing.ocd/CableReel.ocd/DefCore.txt index da37fe880..2640f4229 100644 --- a/planet/Experimental.ocf/CableLorrys.ocs/CableCars.ocd/Structures.ocd/Crossing.ocd/CableReel.ocd/DefCore.txt +++ b/planet/Experimental.ocf/CableLorrys.ocs/CableCars.ocd/Structures.ocd/Crossing.ocd/CableReel.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=CableLorryReel -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=8 Height=6 diff --git a/planet/Experimental.ocf/CableLorrys.ocs/CableCars.ocd/Structures.ocd/Crossing.ocd/DefCore.txt b/planet/Experimental.ocf/CableLorrys.ocs/CableCars.ocd/Structures.ocd/Crossing.ocd/DefCore.txt index 9671d1fb9..36d2e3159 100644 --- a/planet/Experimental.ocf/CableLorrys.ocs/CableCars.ocd/Structures.ocd/Crossing.ocd/DefCore.txt +++ b/planet/Experimental.ocf/CableLorrys.ocs/CableCars.ocd/Structures.ocd/Crossing.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=CableCrossing -Version=5,2,0,1 +Version=6,0 Category=C4D_Structure Width=20 Height=20 diff --git a/planet/Experimental.ocf/CableLorrys.ocs/CableCars.ocd/Vehicles.ocd/Lorry.ocd/DefCore.txt b/planet/Experimental.ocf/CableLorrys.ocs/CableCars.ocd/Vehicles.ocd/Lorry.ocd/DefCore.txt index a01c3a0fb..ff29cccaa 100644 --- a/planet/Experimental.ocf/CableLorrys.ocs/CableCars.ocd/Vehicles.ocd/Lorry.ocd/DefCore.txt +++ b/planet/Experimental.ocf/CableLorrys.ocs/CableCars.ocd/Vehicles.ocd/Lorry.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=CableLorry -Version=5,2,0,1 +Version=6,0 Category=C4D_Vehicle ContactCalls=1 Width=22 diff --git a/planet/Experimental.ocf/CableLorrys.ocs/Scenario.txt b/planet/Experimental.ocf/CableLorrys.ocs/Scenario.txt index a5f9cebaa..d9a7e95f6 100644 --- a/planet/Experimental.ocf/CableLorrys.ocs/Scenario.txt +++ b/planet/Experimental.ocf/CableLorrys.ocs/Scenario.txt @@ -1,7 +1,7 @@ [Head] Icon=26 Title=CableLorries -Version=4,10 +Version=6,0 Difficulty=10 MaxPlayer=8 NoInitialize=0 diff --git a/planet/Experimental.ocf/OCTier.ocs/OCTier.ocd/DefCore.txt b/planet/Experimental.ocf/OCTier.ocs/OCTier.ocd/DefCore.txt index b03da3fab..5cf8aaa9b 100644 --- a/planet/Experimental.ocf/OCTier.ocs/OCTier.ocd/DefCore.txt +++ b/planet/Experimental.ocf/OCTier.ocs/OCTier.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=OCTier -Version=5,3,0,0 +Version=6,0 Category=C4D_Living Width=32 Height=32 diff --git a/planet/Experimental.ocf/Playground.ocs/Scenario.txt b/planet/Experimental.ocf/Playground.ocs/Scenario.txt index be5d504b6..ccf5de30c 100644 --- a/planet/Experimental.ocf/Playground.ocs/Scenario.txt +++ b/planet/Experimental.ocf/Playground.ocs/Scenario.txt @@ -1,7 +1,7 @@ [Head] Icon=26 Title=Test1 -Version=4,10 +Version=6,0 Difficulty=10 MaxPlayer=8 NoInitialize=0 diff --git a/planet/Experimental.ocf/Raiders.ocs/CastleParts.ocd/Background.ocd/DefCore.txt b/planet/Experimental.ocf/Raiders.ocs/CastleParts.ocd/Background.ocd/DefCore.txt index bb2a5fb50..71cde5cf2 100644 --- a/planet/Experimental.ocf/Raiders.ocs/CastleParts.ocd/Background.ocd/DefCore.txt +++ b/planet/Experimental.ocf/Raiders.ocs/CastleParts.ocd/Background.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Raiders_CastleBack -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack Width=264 Height=171 diff --git a/planet/Experimental.ocf/Raiders.ocs/CastleParts.ocd/Floor.ocd/DefCore.txt b/planet/Experimental.ocf/Raiders.ocs/CastleParts.ocd/Floor.ocd/DefCore.txt index 602294ec4..0e03fdf14 100644 --- a/planet/Experimental.ocf/Raiders.ocs/CastleParts.ocd/Floor.ocd/DefCore.txt +++ b/planet/Experimental.ocf/Raiders.ocs/CastleParts.ocd/Floor.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Raiders_CastleFloor -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack Width=87 Height=14 diff --git a/planet/Experimental.ocf/Raiders.ocs/CastleParts.ocd/FrontTower.ocd/DefCore.txt b/planet/Experimental.ocf/Raiders.ocs/CastleParts.ocd/FrontTower.ocd/DefCore.txt index 2fc8cc5cf..12f0a5be4 100644 --- a/planet/Experimental.ocf/Raiders.ocs/CastleParts.ocd/FrontTower.ocd/DefCore.txt +++ b/planet/Experimental.ocf/Raiders.ocs/CastleParts.ocd/FrontTower.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Raiders_FrontTower -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack Width=38 Height=166 diff --git a/planet/Experimental.ocf/Raiders.ocs/Ghost.ocd/DefCore.txt b/planet/Experimental.ocf/Raiders.ocs/Ghost.ocd/DefCore.txt index 4c96b42f0..91ed12b8a 100644 --- a/planet/Experimental.ocf/Raiders.ocs/Ghost.ocd/DefCore.txt +++ b/planet/Experimental.ocf/Raiders.ocs/Ghost.ocd/DefCore.txt @@ -1,4 +1,4 @@ [DefCore] id=Skin_Ghost -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack \ No newline at end of file diff --git a/planet/Experimental.ocf/Raiders.ocs/Scenario.txt b/planet/Experimental.ocf/Raiders.ocs/Scenario.txt index c0cc82b08..f6205c296 100644 --- a/planet/Experimental.ocf/Raiders.ocs/Scenario.txt +++ b/planet/Experimental.ocf/Raiders.ocs/Scenario.txt @@ -1,7 +1,7 @@ [Head] Icon=29 Title=Raiders -Version=5,0,0,0 +Version=6,0 MaxPlayer=4 Difficulty=25 diff --git a/planet/Experimental.ocf/Raiders.ocs/Watch.ocd/DefCore.txt b/planet/Experimental.ocf/Raiders.ocs/Watch.ocd/DefCore.txt index e05b4ac6e..df9b34ec8 100644 --- a/planet/Experimental.ocf/Raiders.ocs/Watch.ocd/DefCore.txt +++ b/planet/Experimental.ocf/Raiders.ocs/Watch.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Pocketwatch -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=6 Height=6 diff --git a/planet/Graphics.ocg/Version.txt b/planet/Graphics.ocg/Version.txt index 804440660..504953848 100644 --- a/planet/Graphics.ocg/Version.txt +++ b/planet/Graphics.ocg/Version.txt @@ -1 +1 @@ -5.2.1 \ No newline at end of file +6.0 \ No newline at end of file diff --git a/planet/Issues.ocf/Dummy.ocd/DefCore.txt b/planet/Issues.ocf/Dummy.ocd/DefCore.txt index c6ed3e59c..cd359d41b 100644 --- a/planet/Issues.ocf/Dummy.ocd/DefCore.txt +++ b/planet/Issues.ocf/Dummy.ocd/DefCore.txt @@ -1,4 +1,4 @@ [DefCore] id=Dummy -Version=5,3,0,0 +Version=6,0 Category=C4D_StaticBack diff --git a/planet/Material.ocg/Version.txt b/planet/Material.ocg/Version.txt index 804440660..504953848 100644 --- a/planet/Material.ocg/Version.txt +++ b/planet/Material.ocg/Version.txt @@ -1 +1 @@ -5.2.1 \ No newline at end of file +6.0 \ No newline at end of file diff --git a/planet/Missions.ocf/AcidDrilling.ocs/AcidDrilling.ocd/DefCore.txt b/planet/Missions.ocf/AcidDrilling.ocs/AcidDrilling.ocd/DefCore.txt index 98eaf5330..72056c6fc 100644 --- a/planet/Missions.ocf/AcidDrilling.ocs/AcidDrilling.ocd/DefCore.txt +++ b/planet/Missions.ocf/AcidDrilling.ocs/AcidDrilling.ocd/DefCore.txt @@ -1,5 +1,5 @@ [DefCore] id=Goal_AcidDrilling -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack|C4D_Goal Picture=0,0,128,128 diff --git a/planet/Missions.ocf/AcidDrilling.ocs/PowerCrystals.ocd/DefCore.txt b/planet/Missions.ocf/AcidDrilling.ocs/PowerCrystals.ocd/DefCore.txt index ab20ce74d..8bb574d0b 100644 --- a/planet/Missions.ocf/AcidDrilling.ocs/PowerCrystals.ocd/DefCore.txt +++ b/planet/Missions.ocf/AcidDrilling.ocs/PowerCrystals.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=PowerCrystals -Version=5,2,0,1 +Version=6,0 Category=C4D_Structure Width=32 Height=32 diff --git a/planet/Missions.ocf/AcidDrilling.ocs/Scenario.txt b/planet/Missions.ocf/AcidDrilling.ocs/Scenario.txt index 53f06e995..0effa6aa9 100644 --- a/planet/Missions.ocf/AcidDrilling.ocs/Scenario.txt +++ b/planet/Missions.ocf/AcidDrilling.ocs/Scenario.txt @@ -1,7 +1,7 @@ [Head] Title=AcidDrilling Icon=30 -Version=5,2,0,1 +Version=6,0 Difficulty=100 NoInitialize=true diff --git a/planet/Missions.ocf/Crash.ocs/PlaneGoal.ocd/DefCore.txt b/planet/Missions.ocf/Crash.ocs/PlaneGoal.ocd/DefCore.txt index d46e07b8f..392958b09 100644 --- a/planet/Missions.ocf/Crash.ocs/PlaneGoal.ocd/DefCore.txt +++ b/planet/Missions.ocf/Crash.ocs/PlaneGoal.ocd/DefCore.txt @@ -1,5 +1,5 @@ [DefCore] id=Goal_Plane -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack|C4D_Goal Picture=0,0,128,128 diff --git a/planet/Missions.ocf/Crash.ocs/Scenario.txt b/planet/Missions.ocf/Crash.ocs/Scenario.txt index b7d9b68d6..581e811a5 100644 --- a/planet/Missions.ocf/Crash.ocs/Scenario.txt +++ b/planet/Missions.ocf/Crash.ocs/Scenario.txt @@ -1,7 +1,7 @@ [Head] Icon=23 Title=Crash -Version=5,2,90,20 +Version=6,0 Difficulty=30 NoInitialize=true MissionAccess=S2Raid diff --git a/planet/Missions.ocf/DarkCastle.ocs/AssassinationGoal.ocd/DefCore.txt b/planet/Missions.ocf/DarkCastle.ocs/AssassinationGoal.ocd/DefCore.txt index de11737d6..dd58ee0c5 100644 --- a/planet/Missions.ocf/DarkCastle.ocs/AssassinationGoal.ocd/DefCore.txt +++ b/planet/Missions.ocf/DarkCastle.ocs/AssassinationGoal.ocd/DefCore.txt @@ -1,5 +1,5 @@ [DefCore] id=Goal_Assassination -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack|C4D_Goal Picture=0,0,128,128 diff --git a/planet/Missions.ocf/DarkCastle.ocs/Dialogue.ocd/DefCore.txt b/planet/Missions.ocf/DarkCastle.ocs/Dialogue.ocd/DefCore.txt index 50ef161b2..3ccd6a64d 100644 --- a/planet/Missions.ocf/DarkCastle.ocs/Dialogue.ocd/DefCore.txt +++ b/planet/Missions.ocf/DarkCastle.ocs/Dialogue.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=DialogueCastle -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack Picture=0,0,64,64 Width=1 diff --git a/planet/Missions.ocf/DarkCastle.ocs/Scenario.txt b/planet/Missions.ocf/DarkCastle.ocs/Scenario.txt index 6b986a794..d0edeb00a 100644 --- a/planet/Missions.ocf/DarkCastle.ocs/Scenario.txt +++ b/planet/Missions.ocf/DarkCastle.ocs/Scenario.txt @@ -1,7 +1,7 @@ [Head] Icon=36 Title=DarkCastle -Version=5,3,90 +Version=6,0 Difficulty=45 NoInitialize=true MissionAccess=S2Treasure diff --git a/planet/Missions.ocf/DeadlyGrotto.ocs/MinersStatue.ocd/DefCore.txt b/planet/Missions.ocf/DeadlyGrotto.ocs/MinersStatue.ocd/DefCore.txt index ffe65c9f3..e4c517735 100644 --- a/planet/Missions.ocf/DeadlyGrotto.ocs/MinersStatue.ocd/DefCore.txt +++ b/planet/Missions.ocf/DeadlyGrotto.ocs/MinersStatue.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=MinersStatue -Version=5,2,0,1 +Version=6,0 Category=C4D_Structure Width=46 Height=80 diff --git a/planet/Missions.ocf/DeadlyGrotto.ocs/MinersStatue.ocd/Head.ocd/DefCore.txt b/planet/Missions.ocf/DeadlyGrotto.ocs/MinersStatue.ocd/Head.ocd/DefCore.txt index a2ec8eb8c..89c6c1050 100644 --- a/planet/Missions.ocf/DeadlyGrotto.ocs/MinersStatue.ocd/Head.ocd/DefCore.txt +++ b/planet/Missions.ocf/DeadlyGrotto.ocs/MinersStatue.ocd/Head.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=MinersStatue_Head -Version=5,2,0,1 +Version=6,0 Category=C4D_Vehicle Width=17 Height=21 diff --git a/planet/Missions.ocf/DeadlyGrotto.ocs/RepairStatue.ocd/DefCore.txt b/planet/Missions.ocf/DeadlyGrotto.ocs/RepairStatue.ocd/DefCore.txt index 6328a2eef..8875e3b5a 100644 --- a/planet/Missions.ocf/DeadlyGrotto.ocs/RepairStatue.ocd/DefCore.txt +++ b/planet/Missions.ocf/DeadlyGrotto.ocs/RepairStatue.ocd/DefCore.txt @@ -1,5 +1,5 @@ [DefCore] id=Goal_RepairStatue -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack|C4D_Goal Picture=0,0,128,128 diff --git a/planet/Missions.ocf/DeadlyGrotto.ocs/Scenario.txt b/planet/Missions.ocf/DeadlyGrotto.ocs/Scenario.txt index 24f66e45c..880f4f76e 100644 --- a/planet/Missions.ocf/DeadlyGrotto.ocs/Scenario.txt +++ b/planet/Missions.ocf/DeadlyGrotto.ocs/Scenario.txt @@ -1,7 +1,7 @@ [Head] Title=DeadlyGrotto Icon=24 -Version=5,2,0,1 +Version=6,0 Difficulty=50 [Definitions] diff --git a/planet/Missions.ocf/DeepSeaMining.ocs/CrystalCommunicator.ocd/DefCore.txt b/planet/Missions.ocf/DeepSeaMining.ocs/CrystalCommunicator.ocd/DefCore.txt index 95c875364..befb6df74 100644 --- a/planet/Missions.ocf/DeepSeaMining.ocs/CrystalCommunicator.ocd/DefCore.txt +++ b/planet/Missions.ocf/DeepSeaMining.ocs/CrystalCommunicator.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=CrystalCommunicator -Version=5,2,0,1 +Version=6,0 Category=C4D_Structure Width=90 Height=70 diff --git a/planet/Missions.ocf/DeepSeaMining.ocs/GoalCrystalCommunicator.ocd/DefCore.txt b/planet/Missions.ocf/DeepSeaMining.ocs/GoalCrystalCommunicator.ocd/DefCore.txt index 17629820c..14d019cb5 100644 --- a/planet/Missions.ocf/DeepSeaMining.ocs/GoalCrystalCommunicator.ocd/DefCore.txt +++ b/planet/Missions.ocf/DeepSeaMining.ocs/GoalCrystalCommunicator.ocd/DefCore.txt @@ -1,5 +1,5 @@ [DefCore] id=Goal_BuildCrystalCommunicator -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack|C4D_Goal Picture=0,0,128,128 diff --git a/planet/Missions.ocf/DeepSeaMining.ocs/Scenario.txt b/planet/Missions.ocf/DeepSeaMining.ocs/Scenario.txt index c6acaaa89..160de96b1 100644 --- a/planet/Missions.ocf/DeepSeaMining.ocs/Scenario.txt +++ b/planet/Missions.ocf/DeepSeaMining.ocs/Scenario.txt @@ -1,7 +1,7 @@ [Head] Title=DeepSeaMining Icon=31 -Version=5,3,0,0 +Version=6,0 Difficulty=30 MissionAccess=S2Crash diff --git a/planet/Missions.ocf/FightForGidl.ocs/AltMaterials.ocd/DefCore.txt b/planet/Missions.ocf/FightForGidl.ocs/AltMaterials.ocd/DefCore.txt index b8af26434..c3e7edebe 100644 --- a/planet/Missions.ocf/FightForGidl.ocs/AltMaterials.ocd/DefCore.txt +++ b/planet/Missions.ocf/FightForGidl.ocs/AltMaterials.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Deco_AltMaterials2 -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack Width=1 Height=1 diff --git a/planet/Missions.ocf/FightForGidl.ocs/CustomAI.ocd/DefCore.txt b/planet/Missions.ocf/FightForGidl.ocs/CustomAI.ocd/DefCore.txt index 2e611ef9a..f386ec64d 100644 --- a/planet/Missions.ocf/FightForGidl.ocs/CustomAI.ocd/DefCore.txt +++ b/planet/Missions.ocf/FightForGidl.ocs/CustomAI.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=CustomAI -Version=5,2,0,1 +Version=6,0 Category=C4D_Vehicle | C4D_MouseIgnore Width=1 Height=1 diff --git a/planet/Missions.ocf/FightForGidl.ocs/ProtectTheStatue.ocd/DefCore.txt b/planet/Missions.ocf/FightForGidl.ocs/ProtectTheStatue.ocd/DefCore.txt index c9b75d41d..589dd2809 100644 --- a/planet/Missions.ocf/FightForGidl.ocs/ProtectTheStatue.ocd/DefCore.txt +++ b/planet/Missions.ocf/FightForGidl.ocs/ProtectTheStatue.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Goal_ProtectTheStatue -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack|C4D_Goal Width=1 Height=1 diff --git a/planet/Missions.ocf/FightForGidl.ocs/Scenario.txt b/planet/Missions.ocf/FightForGidl.ocs/Scenario.txt index e24958f3e..54a62c440 100644 --- a/planet/Missions.ocf/FightForGidl.ocs/Scenario.txt +++ b/planet/Missions.ocf/FightForGidl.ocs/Scenario.txt @@ -1,7 +1,7 @@ [Head] Icon=36 Title=FightForGidl -Version=5,4 +Version=6,0 Difficulty=120 NoInitialize=true diff --git a/planet/Missions.ocf/FrostySummit.ocs/Scenario.txt b/planet/Missions.ocf/FrostySummit.ocs/Scenario.txt index a11ff6838..f9f86e584 100644 --- a/planet/Missions.ocf/FrostySummit.ocs/Scenario.txt +++ b/planet/Missions.ocf/FrostySummit.ocs/Scenario.txt @@ -1,7 +1,7 @@ [Head] Title=FrostySummit Icon=24 -Version=5,2,0,1 +Version=6,0 Difficulty=60 [Definitions] diff --git a/planet/Missions.ocf/GoldenMountain.ocs/Scenario.txt b/planet/Missions.ocf/GoldenMountain.ocs/Scenario.txt index 4ad490d20..84680d4cc 100644 --- a/planet/Missions.ocf/GoldenMountain.ocs/Scenario.txt +++ b/planet/Missions.ocf/GoldenMountain.ocs/Scenario.txt @@ -1,7 +1,7 @@ [Head] Title=GoldenMountain Icon=24 -Version=5,2,0,1 +Version=6,0 Difficulty=110 [Definitions] diff --git a/planet/Missions.ocf/MineRescue.ocs/ElevatorEnergy.ocd/DefCore.txt b/planet/Missions.ocf/MineRescue.ocs/ElevatorEnergy.ocd/DefCore.txt index e28af4860..38492bb6a 100644 --- a/planet/Missions.ocf/MineRescue.ocs/ElevatorEnergy.ocd/DefCore.txt +++ b/planet/Missions.ocf/MineRescue.ocs/ElevatorEnergy.ocd/DefCore.txt @@ -1,5 +1,5 @@ [DefCore] id=Goal_ElevatorEnergy -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack|C4D_Goal Picture=0,0,128,128 diff --git a/planet/Missions.ocf/MineRescue.ocs/Scenario.txt b/planet/Missions.ocf/MineRescue.ocs/Scenario.txt index 55aa954b6..61965092d 100644 --- a/planet/Missions.ocf/MineRescue.ocs/Scenario.txt +++ b/planet/Missions.ocf/MineRescue.ocs/Scenario.txt @@ -1,7 +1,7 @@ [Head] Icon=23 Title=LostMine -Version=5,3,90 +Version=6,0 Difficulty=55 [Definitions] diff --git a/planet/Missions.ocf/MtBrame.ocs/GoalGetBack.ocd/DefCore.txt b/planet/Missions.ocf/MtBrame.ocs/GoalGetBack.ocd/DefCore.txt index 624f5a23b..495cd43d4 100644 --- a/planet/Missions.ocf/MtBrame.ocs/GoalGetBack.ocd/DefCore.txt +++ b/planet/Missions.ocf/MtBrame.ocs/GoalGetBack.ocd/DefCore.txt @@ -1,5 +1,5 @@ [DefCore] id=Goal_GetBack -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack|C4D_Goal Picture=0,0,128,128 diff --git a/planet/Missions.ocf/MtBrame.ocs/Scenario.txt b/planet/Missions.ocf/MtBrame.ocs/Scenario.txt index 9f7ceec08..48c58debd 100644 --- a/planet/Missions.ocf/MtBrame.ocs/Scenario.txt +++ b/planet/Missions.ocf/MtBrame.ocs/Scenario.txt @@ -1,7 +1,7 @@ [Head] Icon=24 Title=MtBrame -Version=5,2,90,21 +Version=6,0 Difficulty=80 NoInitialize=true diff --git a/planet/Missions.ocf/Raid.ocs/CastleSite.ocd/DefCore.txt b/planet/Missions.ocf/Raid.ocs/CastleSite.ocd/DefCore.txt index 3c1d37a52..1c22938fb 100644 --- a/planet/Missions.ocf/Raid.ocs/CastleSite.ocd/DefCore.txt +++ b/planet/Missions.ocf/Raid.ocs/CastleSite.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Castle_ConstructionSite -Version=5,4,0,0 +Version=6,0 Category=C4D_Structure Width=242 Height=133 diff --git a/planet/Missions.ocf/Raid.ocs/Goal.ocd/DefCore.txt b/planet/Missions.ocf/Raid.ocs/Goal.ocd/DefCore.txt index 6bf0843d2..c9b03e546 100644 --- a/planet/Missions.ocf/Raid.ocs/Goal.ocd/DefCore.txt +++ b/planet/Missions.ocf/Raid.ocs/Goal.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Goal_Raid -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack|C4D_Goal Width=1 Height=1 diff --git a/planet/Missions.ocf/Raid.ocs/Key.ocd/DefCore.txt b/planet/Missions.ocf/Raid.ocs/Key.ocd/DefCore.txt index e3ca6592e..40323ec92 100644 --- a/planet/Missions.ocf/Raid.ocs/Key.ocd/DefCore.txt +++ b/planet/Missions.ocf/Raid.ocs/Key.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Key -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=8 Height=8 diff --git a/planet/Missions.ocf/Raid.ocs/Scenario.txt b/planet/Missions.ocf/Raid.ocs/Scenario.txt index fe5c42db5..8e7d84946 100644 --- a/planet/Missions.ocf/Raid.ocs/Scenario.txt +++ b/planet/Missions.ocf/Raid.ocs/Scenario.txt @@ -1,6 +1,6 @@ [Head] Title=Raid -Version=5,4 +Version=6,0 Difficulty=10 NoInitialize=true Icon=37 diff --git a/planet/Missions.ocf/Skylands.ocs/Plane.ocd/Chassis.ocd/DefCore.txt b/planet/Missions.ocf/Skylands.ocs/Plane.ocd/Chassis.ocd/DefCore.txt index 5de71edfd..6e38de874 100644 --- a/planet/Missions.ocf/Skylands.ocs/Plane.ocd/Chassis.ocd/DefCore.txt +++ b/planet/Missions.ocf/Skylands.ocs/Plane.ocd/Chassis.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Plane_Chassis -Version=5,2,0,1 +Version=6,0 Category=C4D_Vehicle Width=60 Height=25 diff --git a/planet/Missions.ocf/Skylands.ocs/Plane.ocd/DefCore.txt b/planet/Missions.ocf/Skylands.ocs/Plane.ocd/DefCore.txt index cbb4bd568..7aa3f0dbc 100644 --- a/planet/Missions.ocf/Skylands.ocs/Plane.ocd/DefCore.txt +++ b/planet/Missions.ocf/Skylands.ocs/Plane.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Plane_Construction -Version=5,2,0,1 +Version=6,0 Category=C4D_Structure Width=60 Height=29 diff --git a/planet/Missions.ocf/Skylands.ocs/Plane.ocd/Engine.ocd/DefCore.txt b/planet/Missions.ocf/Skylands.ocs/Plane.ocd/Engine.ocd/DefCore.txt index d19998b36..3beb9dcd3 100644 --- a/planet/Missions.ocf/Skylands.ocs/Plane.ocd/Engine.ocd/DefCore.txt +++ b/planet/Missions.ocf/Skylands.ocs/Plane.ocd/Engine.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Plane_Engine -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=13 Height=8 diff --git a/planet/Missions.ocf/Skylands.ocs/Plane.ocd/Library_PlanePart.ocd/DefCore.txt b/planet/Missions.ocf/Skylands.ocs/Plane.ocd/Library_PlanePart.ocd/DefCore.txt index 229a4f5bc..cb2fca7e6 100644 --- a/planet/Missions.ocf/Skylands.ocs/Plane.ocd/Library_PlanePart.ocd/DefCore.txt +++ b/planet/Missions.ocf/Skylands.ocs/Plane.ocd/Library_PlanePart.ocd/DefCore.txt @@ -1,4 +1,4 @@ [DefCore] id=Library_PlanePart -Version=5,2,2,0 +Version=6,0 Category=C4D_StaticBack \ No newline at end of file diff --git a/planet/Missions.ocf/Skylands.ocs/Plane.ocd/Propeller.ocd/DefCore.txt b/planet/Missions.ocf/Skylands.ocs/Plane.ocd/Propeller.ocd/DefCore.txt index 35711db1f..c6df70c1c 100644 --- a/planet/Missions.ocf/Skylands.ocs/Plane.ocd/Propeller.ocd/DefCore.txt +++ b/planet/Missions.ocf/Skylands.ocs/Plane.ocd/Propeller.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Plane_Propeller -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=9 Height=10 diff --git a/planet/Missions.ocf/Skylands.ocs/Plane.ocd/Skids.ocd/DefCore.txt b/planet/Missions.ocf/Skylands.ocs/Plane.ocd/Skids.ocd/DefCore.txt index 5799a1b86..7d6fccb14 100644 --- a/planet/Missions.ocf/Skylands.ocs/Plane.ocd/Skids.ocd/DefCore.txt +++ b/planet/Missions.ocf/Skylands.ocs/Plane.ocd/Skids.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Plane_Skids -Version=5,2,0,1 +Version=6,0 Category=C4D_Vehicle Width=38 Height=16 diff --git a/planet/Missions.ocf/Skylands.ocs/Plane.ocd/Wings.ocd/DefCore.txt b/planet/Missions.ocf/Skylands.ocs/Plane.ocd/Wings.ocd/DefCore.txt index a872bd695..77f46da8d 100644 --- a/planet/Missions.ocf/Skylands.ocs/Plane.ocd/Wings.ocd/DefCore.txt +++ b/planet/Missions.ocf/Skylands.ocs/Plane.ocd/Wings.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Plane_Wings -Version=5,2,0,1 +Version=6,0 Category=C4D_Vehicle Width=10 Height=35 diff --git a/planet/Missions.ocf/Skylands.ocs/PlaneGoal.ocd/DefCore.txt b/planet/Missions.ocf/Skylands.ocs/PlaneGoal.ocd/DefCore.txt index d46e07b8f..392958b09 100644 --- a/planet/Missions.ocf/Skylands.ocs/PlaneGoal.ocd/DefCore.txt +++ b/planet/Missions.ocf/Skylands.ocs/PlaneGoal.ocd/DefCore.txt @@ -1,5 +1,5 @@ [DefCore] id=Goal_Plane -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack|C4D_Goal Picture=0,0,128,128 diff --git a/planet/Missions.ocf/Skylands.ocs/Scaffold.ocd/DefCore.txt b/planet/Missions.ocf/Skylands.ocs/Scaffold.ocd/DefCore.txt index 55080e1ad..35df7fd6d 100644 --- a/planet/Missions.ocf/Skylands.ocs/Scaffold.ocd/DefCore.txt +++ b/planet/Missions.ocf/Skylands.ocs/Scaffold.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Scaffold -Version=5,2,0,1 +Version=6,0 Category=C4D_Structure Width=32 Height=32 diff --git a/planet/Missions.ocf/Skylands.ocs/Scaffold.ocd/Wall.ocd/DefCore.txt b/planet/Missions.ocf/Skylands.ocs/Scaffold.ocd/Wall.ocd/DefCore.txt index b01b59361..399380b76 100644 --- a/planet/Missions.ocf/Skylands.ocs/Scaffold.ocd/Wall.ocd/DefCore.txt +++ b/planet/Missions.ocf/Skylands.ocs/Scaffold.ocd/Wall.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=ScaffoldWall -Version=5,2,0,1 +Version=6,0 Category=C4D_Structure | C4D_MouseIgnore Width=32 Height=32 diff --git a/planet/Missions.ocf/Skylands.ocs/Scenario.txt b/planet/Missions.ocf/Skylands.ocs/Scenario.txt index 5752e4c74..b5dcf4d53 100644 --- a/planet/Missions.ocf/Skylands.ocs/Scenario.txt +++ b/planet/Missions.ocf/Skylands.ocs/Scenario.txt @@ -1,7 +1,7 @@ [Head] Icon=25 Title=Skylands -Version=5,2,90,20 +Version=6,0 Difficulty=90 MaxPlayer=30 NoInitialize=true diff --git a/planet/Missions.ocf/Skylands.ocs/SmallConiferous.ocd/DefCore.txt b/planet/Missions.ocf/Skylands.ocs/SmallConiferous.ocd/DefCore.txt index d045bb0f6..a12da273c 100644 --- a/planet/Missions.ocf/Skylands.ocs/SmallConiferous.ocd/DefCore.txt +++ b/planet/Missions.ocf/Skylands.ocs/SmallConiferous.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Tree_SmallConiferous -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack Width=30 Height=55 diff --git a/planet/Missions.ocf/Skylands.ocs/Storm.ocd/DebugDisplay.ocd/DefCore.txt b/planet/Missions.ocf/Skylands.ocs/Storm.ocd/DebugDisplay.ocd/DefCore.txt index 5ff5b7116..6877242ec 100644 --- a/planet/Missions.ocf/Skylands.ocs/Storm.ocd/DebugDisplay.ocd/DefCore.txt +++ b/planet/Missions.ocf/Skylands.ocs/Storm.ocd/DebugDisplay.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Storm_DebugDisplay -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack Vertices=2 Line=2 diff --git a/planet/Missions.ocf/Skylands.ocs/Storm.ocd/DefCore.txt b/planet/Missions.ocf/Skylands.ocs/Storm.ocd/DefCore.txt index 0eef42553..238ae509a 100644 --- a/planet/Missions.ocf/Skylands.ocs/Storm.ocd/DefCore.txt +++ b/planet/Missions.ocf/Skylands.ocs/Storm.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Storm -Version=4,10,0,0 +Version=6,0 Category=C4D_StaticBack Width=1 Height=1 diff --git a/planet/Missions.ocf/TreasureHunt.ocs/AltMaterials.ocd/DefCore.txt b/planet/Missions.ocf/TreasureHunt.ocs/AltMaterials.ocd/DefCore.txt index b8af26434..c3e7edebe 100644 --- a/planet/Missions.ocf/TreasureHunt.ocs/AltMaterials.ocd/DefCore.txt +++ b/planet/Missions.ocf/TreasureHunt.ocs/AltMaterials.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Deco_AltMaterials2 -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack Width=1 Height=1 diff --git a/planet/Missions.ocf/TreasureHunt.ocs/GemOfPower.ocd/DefCore.txt b/planet/Missions.ocf/TreasureHunt.ocs/GemOfPower.ocd/DefCore.txt index 4fc0547c2..7a97e215d 100644 --- a/planet/Missions.ocf/TreasureHunt.ocs/GemOfPower.ocd/DefCore.txt +++ b/planet/Missions.ocf/TreasureHunt.ocs/GemOfPower.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=GemOfPower -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=8 Height=8 diff --git a/planet/Missions.ocf/TreasureHunt.ocs/Scenario.txt b/planet/Missions.ocf/TreasureHunt.ocs/Scenario.txt index 14f44e39f..8ea4b55e0 100644 --- a/planet/Missions.ocf/TreasureHunt.ocs/Scenario.txt +++ b/planet/Missions.ocf/TreasureHunt.ocs/Scenario.txt @@ -1,7 +1,7 @@ [Head] Icon=15 Title=TreasureHunt -Version=5,4 +Version=6,0 Difficulty=40 NoInitialize=true MissionAccess=S2Sea diff --git a/planet/Missions.ocf/TreasureHunt.ocs/TreasureHunt.ocd/DefCore.txt b/planet/Missions.ocf/TreasureHunt.ocs/TreasureHunt.ocd/DefCore.txt index 921ac0dea..75b10da3c 100644 --- a/planet/Missions.ocf/TreasureHunt.ocs/TreasureHunt.ocd/DefCore.txt +++ b/planet/Missions.ocf/TreasureHunt.ocs/TreasureHunt.ocd/DefCore.txt @@ -1,5 +1,5 @@ [DefCore] id=Goal_TreasureHunt -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack|C4D_Goal Picture=0,0,64,64 diff --git a/planet/Music.ocg/Version.txt b/planet/Music.ocg/Version.txt index 8a30e8f94..504953848 100644 --- a/planet/Music.ocg/Version.txt +++ b/planet/Music.ocg/Version.txt @@ -1 +1 @@ -5.4.0 +6.0 \ No newline at end of file diff --git a/planet/Objects.ocd/Animals.ocd/Butterfly.ocd/DefCore.txt b/planet/Objects.ocd/Animals.ocd/Butterfly.ocd/DefCore.txt index 10338441a..b38d9239a 100644 --- a/planet/Objects.ocd/Animals.ocd/Butterfly.ocd/DefCore.txt +++ b/planet/Objects.ocd/Animals.ocd/Butterfly.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Butterfly -Version=5,2,0,1 +Version=6,0 Category=C4D_Living ContactCalls=1 Width=6 diff --git a/planet/Objects.ocd/Animals.ocd/Fish.ocd/DefCore.txt b/planet/Objects.ocd/Animals.ocd/Fish.ocd/DefCore.txt index b09579814..66eb817aa 100644 --- a/planet/Objects.ocd/Animals.ocd/Fish.ocd/DefCore.txt +++ b/planet/Objects.ocd/Animals.ocd/Fish.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Fish -Version=5,2,0,1 +Version=6,0 Category=C4D_Living ContactCalls=1 Width=7 diff --git a/planet/Objects.ocd/Animals.ocd/Fish.ocd/FishRoe.ocd/DefCore.txt b/planet/Objects.ocd/Animals.ocd/Fish.ocd/FishRoe.ocd/DefCore.txt index 082e30441..575502f8d 100644 --- a/planet/Objects.ocd/Animals.ocd/Fish.ocd/FishRoe.ocd/DefCore.txt +++ b/planet/Objects.ocd/Animals.ocd/Fish.ocd/FishRoe.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=FishRoe -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=1 Height=1 diff --git a/planet/Objects.ocd/Animals.ocd/Piranha.ocd/DefCore.txt b/planet/Objects.ocd/Animals.ocd/Piranha.ocd/DefCore.txt index 57b9101e0..668baf91b 100644 --- a/planet/Objects.ocd/Animals.ocd/Piranha.ocd/DefCore.txt +++ b/planet/Objects.ocd/Animals.ocd/Piranha.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Piranha -Version=5,2,0,1 +Version=6,0 Category=C4D_Living ContactCalls=1 Width=6 diff --git a/planet/Objects.ocd/Clonk.ocd/Animations.ocd/DefCore.txt b/planet/Objects.ocd/Clonk.ocd/Animations.ocd/DefCore.txt index 0b3bd72be..a47f2a389 100644 --- a/planet/Objects.ocd/Clonk.ocd/Animations.ocd/DefCore.txt +++ b/planet/Objects.ocd/Clonk.ocd/Animations.ocd/DefCore.txt @@ -1,4 +1,4 @@ [DefCore] id=Clonk_Animations -Version=4,10,0,0 +Version=6,0 Category=C4D_StaticBack diff --git a/planet/Objects.ocd/Clonk.ocd/Backpack.ocd/DefCore.txt b/planet/Objects.ocd/Clonk.ocd/Backpack.ocd/DefCore.txt index 7520a780d..94748e669 100644 --- a/planet/Objects.ocd/Clonk.ocd/Backpack.ocd/DefCore.txt +++ b/planet/Objects.ocd/Clonk.ocd/Backpack.ocd/DefCore.txt @@ -1,4 +1,4 @@ [DefCore] id=BackpackGraphic -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack \ No newline at end of file diff --git a/planet/Objects.ocd/Clonk.ocd/DefCore.txt b/planet/Objects.ocd/Clonk.ocd/DefCore.txt index 8a20f3508..13d587c7a 100644 --- a/planet/Objects.ocd/Clonk.ocd/DefCore.txt +++ b/planet/Objects.ocd/Clonk.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Clonk -Version=5,2,0,1 +Version=6,0 Category=C4D_Living Width=8 Height=20 diff --git a/planet/Objects.ocd/Effects.ocd/Bubble.ocd/DefCore.txt b/planet/Objects.ocd/Effects.ocd/Bubble.ocd/DefCore.txt index 096066de8..04aa8054c 100644 --- a/planet/Objects.ocd/Effects.ocd/Bubble.ocd/DefCore.txt +++ b/planet/Objects.ocd/Effects.ocd/Bubble.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Fx_Bubble -Version=5,2,0,1 +Version=6,0 Category=C4D_Vehicle Width=2 Height=2 diff --git a/planet/Objects.ocd/Effects.ocd/Cloud.ocd/DefCore.txt b/planet/Objects.ocd/Effects.ocd/Cloud.ocd/DefCore.txt index 69d31a864..bf72c9280 100644 --- a/planet/Objects.ocd/Effects.ocd/Cloud.ocd/DefCore.txt +++ b/planet/Objects.ocd/Effects.ocd/Cloud.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=CloudEffect -Version=5,2,0,1 +Version=6,0 Category=C4D_Vehicle|C4D_Parallax Width=10 Height=10 diff --git a/planet/Objects.ocd/Effects.ocd/Flame.ocd/DefCore.txt b/planet/Objects.ocd/Effects.ocd/Flame.ocd/DefCore.txt index 66f0c82f5..11883367d 100644 --- a/planet/Objects.ocd/Effects.ocd/Flame.ocd/DefCore.txt +++ b/planet/Objects.ocd/Effects.ocd/Flame.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Flame -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=15 Height=20 diff --git a/planet/Objects.ocd/Effects.ocd/Trajectory.ocd/DefCore.txt b/planet/Objects.ocd/Effects.ocd/Trajectory.ocd/DefCore.txt index bcdd2c0c8..aa4ac2dcc 100644 --- a/planet/Objects.ocd/Effects.ocd/Trajectory.ocd/DefCore.txt +++ b/planet/Objects.ocd/Effects.ocd/Trajectory.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Trajectory -Version=4,10 +Version=6,0 Category=1 Width=1 Height=1 diff --git a/planet/Objects.ocd/Environment.ocd/Ambience.ocd/DefCore.txt b/planet/Objects.ocd/Environment.ocd/Ambience.ocd/DefCore.txt index 1403548dd..350feff15 100644 --- a/planet/Objects.ocd/Environment.ocd/Ambience.ocd/DefCore.txt +++ b/planet/Objects.ocd/Environment.ocd/Ambience.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Ambience -Version=4,10,0,0 +Version=6,0 Category=C4D_StaticBack Width=1 Height=1 diff --git a/planet/Objects.ocd/Environment.ocd/Ambience.ocd/Zicadas.ocd/DefCore.txt b/planet/Objects.ocd/Environment.ocd/Ambience.ocd/Zicadas.ocd/DefCore.txt index 8d05ddd17..d50c59097 100644 --- a/planet/Objects.ocd/Environment.ocd/Ambience.ocd/Zicadas.ocd/DefCore.txt +++ b/planet/Objects.ocd/Environment.ocd/Ambience.ocd/Zicadas.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Ambience_Zicadas -Version=4,10,0,0 +Version=6,0 Category=C4D_StaticBack Width=1 Height=1 diff --git a/planet/Objects.ocd/Environment.ocd/Bricks.ocd/BrickEdge.ocd/DefCore.txt b/planet/Objects.ocd/Environment.ocd/Bricks.ocd/BrickEdge.ocd/DefCore.txt index 92090fa3b..e1e8833aa 100644 --- a/planet/Objects.ocd/Environment.ocd/Bricks.ocd/BrickEdge.ocd/DefCore.txt +++ b/planet/Objects.ocd/Environment.ocd/Bricks.ocd/BrickEdge.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=BrickEdge -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack|C4D_MouseIgnore Width=8 Height=8 diff --git a/planet/Objects.ocd/Environment.ocd/Bricks.ocd/MovingBrick.ocd/DefCore.txt b/planet/Objects.ocd/Environment.ocd/Bricks.ocd/MovingBrick.ocd/DefCore.txt index c6bef4593..860f683ee 100644 --- a/planet/Objects.ocd/Environment.ocd/Bricks.ocd/MovingBrick.ocd/DefCore.txt +++ b/planet/Objects.ocd/Environment.ocd/Bricks.ocd/MovingBrick.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=MovingBrick -Version=5,2,0,1 +Version=6,0 Category=C4D_Structure Width=40 Height=8 diff --git a/planet/Objects.ocd/Environment.ocd/Cloud.ocd/DefCore.txt b/planet/Objects.ocd/Environment.ocd/Cloud.ocd/DefCore.txt index 8a735b367..46de5dab6 100644 --- a/planet/Objects.ocd/Environment.ocd/Cloud.ocd/DefCore.txt +++ b/planet/Objects.ocd/Environment.ocd/Cloud.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Cloud -Version=5,2,0,1 +Version=6,0 Category=C4D_Vehicle | C4D_Background Width=512 Height=350 diff --git a/planet/Objects.ocd/Environment.ocd/Cloud.ocd/Lightning.ocd/DefCore.txt b/planet/Objects.ocd/Environment.ocd/Cloud.ocd/Lightning.ocd/DefCore.txt index 4a20ab39b..d8e9c0724 100644 --- a/planet/Objects.ocd/Environment.ocd/Cloud.ocd/Lightning.ocd/DefCore.txt +++ b/planet/Objects.ocd/Environment.ocd/Cloud.ocd/Lightning.ocd/DefCore.txt @@ -1,4 +1,4 @@ [DefCore] id=Lightning -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack diff --git a/planet/Objects.ocd/Environment.ocd/Column.ocd/DefCore.txt b/planet/Objects.ocd/Environment.ocd/Column.ocd/DefCore.txt index 230b54109..12fb6dbca 100644 --- a/planet/Objects.ocd/Environment.ocd/Column.ocd/DefCore.txt +++ b/planet/Objects.ocd/Environment.ocd/Column.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Column -Version=5,2,0,1 +Version=6,0 Category=C4D_Structure Width=20 Height=50 diff --git a/planet/Objects.ocd/Environment.ocd/Disasters.ocd/Earthquake.ocd/DefCore.txt b/planet/Objects.ocd/Environment.ocd/Disasters.ocd/Earthquake.ocd/DefCore.txt index 056bb3fcf..632761792 100644 --- a/planet/Objects.ocd/Environment.ocd/Disasters.ocd/Earthquake.ocd/DefCore.txt +++ b/planet/Objects.ocd/Environment.ocd/Disasters.ocd/Earthquake.ocd/DefCore.txt @@ -1,4 +1,4 @@ [DefCore] id=Earthquake -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack|C4D_Environment diff --git a/planet/Objects.ocd/Environment.ocd/Disasters.ocd/Meteor.ocd/DefCore.txt b/planet/Objects.ocd/Environment.ocd/Disasters.ocd/Meteor.ocd/DefCore.txt index 1dfa9e83c..98108f1df 100644 --- a/planet/Objects.ocd/Environment.ocd/Disasters.ocd/Meteor.ocd/DefCore.txt +++ b/planet/Objects.ocd/Environment.ocd/Disasters.ocd/Meteor.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Meteor -Version=5,2,0,1 +Version=6,0 Category=C4D_Object|C4D_Environment Width=20 Height=20 diff --git a/planet/Objects.ocd/Environment.ocd/Disasters.ocd/Rockfall.ocd/DefCore.txt b/planet/Objects.ocd/Environment.ocd/Disasters.ocd/Rockfall.ocd/DefCore.txt index 3560a1ed3..22e049976 100644 --- a/planet/Objects.ocd/Environment.ocd/Disasters.ocd/Rockfall.ocd/DefCore.txt +++ b/planet/Objects.ocd/Environment.ocd/Disasters.ocd/Rockfall.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Rockfall -Version=5,4,0,0 +Version=6,0 Category=C4D_Object|C4D_Environment Width=16 Height=16 diff --git a/planet/Objects.ocd/Environment.ocd/Disasters.ocd/Volcano.ocd/DefCore.txt b/planet/Objects.ocd/Environment.ocd/Disasters.ocd/Volcano.ocd/DefCore.txt index bd716030e..2135f4e44 100644 --- a/planet/Objects.ocd/Environment.ocd/Disasters.ocd/Volcano.ocd/DefCore.txt +++ b/planet/Objects.ocd/Environment.ocd/Disasters.ocd/Volcano.ocd/DefCore.txt @@ -1,4 +1,4 @@ [DefCore] id=Volcano -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack|C4D_Environment \ No newline at end of file diff --git a/planet/Objects.ocd/Environment.ocd/Disasters.ocd/Volcano.ocd/LavaChunk.ocd/DefCore.txt b/planet/Objects.ocd/Environment.ocd/Disasters.ocd/Volcano.ocd/LavaChunk.ocd/DefCore.txt index f6aaf63ee..78590a1b4 100644 --- a/planet/Objects.ocd/Environment.ocd/Disasters.ocd/Volcano.ocd/LavaChunk.ocd/DefCore.txt +++ b/planet/Objects.ocd/Environment.ocd/Disasters.ocd/Volcano.ocd/LavaChunk.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=LavaChunk -Version=5,2,1,0 +Version=6,0 Category=C4D_Object Width=12 Height=12 diff --git a/planet/Objects.ocd/Environment.ocd/Landscape.ocd/Cave.ocd/DefCore.txt b/planet/Objects.ocd/Environment.ocd/Landscape.ocd/Cave.ocd/DefCore.txt index ba9e3122f..c2fcb7acc 100644 --- a/planet/Objects.ocd/Environment.ocd/Landscape.ocd/Cave.ocd/DefCore.txt +++ b/planet/Objects.ocd/Environment.ocd/Landscape.ocd/Cave.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Landscape_Cave -Version=4,10,0,0 +Version=6,0 Category=C4D_StaticBack Width=1 Height=1 diff --git a/planet/Objects.ocd/Environment.ocd/Rock.ocd/DefCore.txt b/planet/Objects.ocd/Environment.ocd/Rock.ocd/DefCore.txt index a1d0ca44b..625e3fa86 100644 --- a/planet/Objects.ocd/Environment.ocd/Rock.ocd/DefCore.txt +++ b/planet/Objects.ocd/Environment.ocd/Rock.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=BigRock -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack Width=40 Height=40 diff --git a/planet/Objects.ocd/Environment.ocd/Time.ocd/CelestialEnv.ocd/DefCore.txt b/planet/Objects.ocd/Environment.ocd/Time.ocd/CelestialEnv.ocd/DefCore.txt index 0b957f327..83cf78681 100644 --- a/planet/Objects.ocd/Environment.ocd/Time.ocd/CelestialEnv.ocd/DefCore.txt +++ b/planet/Objects.ocd/Environment.ocd/Time.ocd/CelestialEnv.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Environment_Celestial -Version=5,2,0,1 +Version=6,0 Category=C4D_Environment|C4D_StaticBack Width=1 Height=1 diff --git a/planet/Objects.ocd/Environment.ocd/Time.ocd/DefCore.txt b/planet/Objects.ocd/Environment.ocd/Time.ocd/DefCore.txt index efe902834..c64219e2d 100644 --- a/planet/Objects.ocd/Environment.ocd/Time.ocd/DefCore.txt +++ b/planet/Objects.ocd/Environment.ocd/Time.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Environment_Time -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack|C4D_Environment Width=1 Height=1 diff --git a/planet/Objects.ocd/Environment.ocd/Time.ocd/Moon.ocd/DefCore.txt b/planet/Objects.ocd/Environment.ocd/Time.ocd/Moon.ocd/DefCore.txt index 5920fdb62..8c58d13aa 100644 --- a/planet/Objects.ocd/Environment.ocd/Time.ocd/Moon.ocd/DefCore.txt +++ b/planet/Objects.ocd/Environment.ocd/Time.ocd/Moon.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Moon -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack|C4D_Background|C4D_Parallax Width=128 Height=128 diff --git a/planet/Objects.ocd/Environment.ocd/Time.ocd/Stars.ocd/DefCore.txt b/planet/Objects.ocd/Environment.ocd/Time.ocd/Stars.ocd/DefCore.txt index 7e5c01bcb..4eadac4c4 100644 --- a/planet/Objects.ocd/Environment.ocd/Time.ocd/Stars.ocd/DefCore.txt +++ b/planet/Objects.ocd/Environment.ocd/Time.ocd/Stars.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Stars -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack|C4D_Background|C4D_Parallax Width=128 Height=128 diff --git a/planet/Objects.ocd/Environment.ocd/Waterfall.ocd/DefCore.txt b/planet/Objects.ocd/Environment.ocd/Waterfall.ocd/DefCore.txt index bf1ae022d..601c4ed39 100644 --- a/planet/Objects.ocd/Environment.ocd/Waterfall.ocd/DefCore.txt +++ b/planet/Objects.ocd/Environment.ocd/Waterfall.ocd/DefCore.txt @@ -1,4 +1,4 @@ [DefCore] id=Waterfall -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack diff --git a/planet/Objects.ocd/Goals.ocd/CaptureTheFlag.ocd/DefCore.txt b/planet/Objects.ocd/Goals.ocd/CaptureTheFlag.ocd/DefCore.txt index 7cea1f00e..3dabf8f51 100644 --- a/planet/Objects.ocd/Goals.ocd/CaptureTheFlag.ocd/DefCore.txt +++ b/planet/Objects.ocd/Goals.ocd/CaptureTheFlag.ocd/DefCore.txt @@ -1,5 +1,5 @@ [DefCore] id=Goal_CaptureTheFlag -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack|C4D_Goal Picture=0,0,128,128 diff --git a/planet/Objects.ocd/Goals.ocd/CaptureTheFlag.ocd/Flag.ocd/DefCore.txt b/planet/Objects.ocd/Goals.ocd/CaptureTheFlag.ocd/Flag.ocd/DefCore.txt index e8d08d604..48f3dff04 100644 --- a/planet/Objects.ocd/Goals.ocd/CaptureTheFlag.ocd/Flag.ocd/DefCore.txt +++ b/planet/Objects.ocd/Goals.ocd/CaptureTheFlag.ocd/Flag.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Goal_Flag -Version=5,2,0,1 +Version=6,0 Category=C4D_Vehicle Width=16 Height=26 diff --git a/planet/Objects.ocd/Goals.ocd/CaptureTheFlag.ocd/FlagBase.ocd/DefCore.txt b/planet/Objects.ocd/Goals.ocd/CaptureTheFlag.ocd/FlagBase.ocd/DefCore.txt index 291f5767d..a70166546 100644 --- a/planet/Objects.ocd/Goals.ocd/CaptureTheFlag.ocd/FlagBase.ocd/DefCore.txt +++ b/planet/Objects.ocd/Goals.ocd/CaptureTheFlag.ocd/FlagBase.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Goal_FlagBase -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack Width=10 Height=5 diff --git a/planet/Objects.ocd/Goals.ocd/Construction.ocd/DefCore.txt b/planet/Objects.ocd/Goals.ocd/Construction.ocd/DefCore.txt index 4335ed2ef..6da6b3ea4 100644 --- a/planet/Objects.ocd/Goals.ocd/Construction.ocd/DefCore.txt +++ b/planet/Objects.ocd/Goals.ocd/Construction.ocd/DefCore.txt @@ -1,5 +1,5 @@ [DefCore] id=Goal_Construction -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack|C4D_Goal Picture=0,0,128,128 diff --git a/planet/Objects.ocd/Goals.ocd/DeathMatch.ocd/DefCore.txt b/planet/Objects.ocd/Goals.ocd/DeathMatch.ocd/DefCore.txt index 6bfe2337a..b7fa4387d 100644 --- a/planet/Objects.ocd/Goals.ocd/DeathMatch.ocd/DefCore.txt +++ b/planet/Objects.ocd/Goals.ocd/DeathMatch.ocd/DefCore.txt @@ -1,5 +1,5 @@ [DefCore] id=Goal_DeathMatch -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack|C4D_Goal Picture=0,0,128,128 diff --git a/planet/Objects.ocd/Goals.ocd/Expansion.ocd/DefCore.txt b/planet/Objects.ocd/Goals.ocd/Expansion.ocd/DefCore.txt index 4bb419573..2761bac6e 100644 --- a/planet/Objects.ocd/Goals.ocd/Expansion.ocd/DefCore.txt +++ b/planet/Objects.ocd/Goals.ocd/Expansion.ocd/DefCore.txt @@ -1,5 +1,5 @@ [DefCore] id=Goal_Expansion -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack|C4D_Goal Picture=0,0,128,128 diff --git a/planet/Objects.ocd/Goals.ocd/KingOfTheHill.ocd/DefCore.txt b/planet/Objects.ocd/Goals.ocd/KingOfTheHill.ocd/DefCore.txt index 84e87d763..07c369577 100644 --- a/planet/Objects.ocd/Goals.ocd/KingOfTheHill.ocd/DefCore.txt +++ b/planet/Objects.ocd/Goals.ocd/KingOfTheHill.ocd/DefCore.txt @@ -1,5 +1,5 @@ [DefCore] id=Goal_KingOfTheHill -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack|C4D_Goal Picture=0,0,64,64 diff --git a/planet/Objects.ocd/Goals.ocd/KingOfTheHill.ocd/KingOfTheHillLocation.ocd/DefCore.txt b/planet/Objects.ocd/Goals.ocd/KingOfTheHill.ocd/KingOfTheHillLocation.ocd/DefCore.txt index 32285dcd9..11bfb4da5 100644 --- a/planet/Objects.ocd/Goals.ocd/KingOfTheHill.ocd/KingOfTheHillLocation.ocd/DefCore.txt +++ b/planet/Objects.ocd/Goals.ocd/KingOfTheHill.ocd/KingOfTheHillLocation.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=KingOfTheHill_Location -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack Width=10 Height=10 diff --git a/planet/Objects.ocd/Goals.ocd/KingOfTheHill.ocd/KingOfTheHillLocation.ocd/KingOfTheHillMarker.ocd/DefCore.txt b/planet/Objects.ocd/Goals.ocd/KingOfTheHill.ocd/KingOfTheHillLocation.ocd/KingOfTheHillMarker.ocd/DefCore.txt index f92f2e528..fe15081c7 100644 --- a/planet/Objects.ocd/Goals.ocd/KingOfTheHill.ocd/KingOfTheHillLocation.ocd/KingOfTheHillMarker.ocd/DefCore.txt +++ b/planet/Objects.ocd/Goals.ocd/KingOfTheHill.ocd/KingOfTheHillLocation.ocd/KingOfTheHillMarker.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=KingOfTheHill_Marker -Version=5,2,0,1 +Version=6,0 #Category=C4D_StaticBack | C4D_Foreground | C4D_IgnoreFoW Category=C4D_StaticBack | C4D_IgnoreFoW Width=16 diff --git a/planet/Objects.ocd/Goals.ocd/KingOfTheHill.ocd/KingOfTheHillLocation.ocd/KingOfTheHillStar.ocd/DefCore.txt b/planet/Objects.ocd/Goals.ocd/KingOfTheHill.ocd/KingOfTheHillLocation.ocd/KingOfTheHillStar.ocd/DefCore.txt index 416fe7fb6..fce57414b 100644 --- a/planet/Objects.ocd/Goals.ocd/KingOfTheHill.ocd/KingOfTheHillLocation.ocd/KingOfTheHillStar.ocd/DefCore.txt +++ b/planet/Objects.ocd/Goals.ocd/KingOfTheHill.ocd/KingOfTheHillLocation.ocd/KingOfTheHillStar.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=KingOfTheHill_Star -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack | C4D_IgnoreFoW Width=16 Height=16 diff --git a/planet/Objects.ocd/Goals.ocd/LastManStanding.ocd/DefCore.txt b/planet/Objects.ocd/Goals.ocd/LastManStanding.ocd/DefCore.txt index c7fcbf20b..c36657a1e 100644 --- a/planet/Objects.ocd/Goals.ocd/LastManStanding.ocd/DefCore.txt +++ b/planet/Objects.ocd/Goals.ocd/LastManStanding.ocd/DefCore.txt @@ -1,5 +1,5 @@ [DefCore] id=Goal_LastManStanding -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack|C4D_Goal Picture=0,0,128,128 diff --git a/planet/Objects.ocd/Goals.ocd/LastManStanding.ocd/Relaunch.ocd/DefCore.txt b/planet/Objects.ocd/Goals.ocd/LastManStanding.ocd/Relaunch.ocd/DefCore.txt index 7ab83eac6..ce47cd21f 100644 --- a/planet/Objects.ocd/Goals.ocd/LastManStanding.ocd/Relaunch.ocd/DefCore.txt +++ b/planet/Objects.ocd/Goals.ocd/LastManStanding.ocd/Relaunch.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=RelaunchContainer -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack ClosedContainer=2 Picture=0,0,92,92 \ No newline at end of file diff --git a/planet/Objects.ocd/Goals.ocd/Melee.ocd/DefCore.txt b/planet/Objects.ocd/Goals.ocd/Melee.ocd/DefCore.txt index 6f89b4f15..7cffe6ac7 100644 --- a/planet/Objects.ocd/Goals.ocd/Melee.ocd/DefCore.txt +++ b/planet/Objects.ocd/Goals.ocd/Melee.ocd/DefCore.txt @@ -1,5 +1,5 @@ [DefCore] id=Goal_Melee -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack|C4D_Goal Picture=0,0,128,128 diff --git a/planet/Objects.ocd/Goals.ocd/Parkour.ocd/Arrow.ocd/DefCore.txt b/planet/Objects.ocd/Goals.ocd/Parkour.ocd/Arrow.ocd/DefCore.txt index dec78f767..d84b8cc6e 100644 --- a/planet/Objects.ocd/Goals.ocd/Parkour.ocd/Arrow.ocd/DefCore.txt +++ b/planet/Objects.ocd/Goals.ocd/Parkour.ocd/Arrow.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=GUI_GoalArrow -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack Width=16 Height=36 diff --git a/planet/Objects.ocd/Goals.ocd/Parkour.ocd/CheckPoint.ocd/DefCore.txt b/planet/Objects.ocd/Goals.ocd/Parkour.ocd/CheckPoint.ocd/DefCore.txt index 5497a2324..082d0662c 100644 --- a/planet/Objects.ocd/Goals.ocd/Parkour.ocd/CheckPoint.ocd/DefCore.txt +++ b/planet/Objects.ocd/Goals.ocd/Parkour.ocd/CheckPoint.ocd/DefCore.txt @@ -1,4 +1,4 @@ [DefCore] id=ParkourCheckpoint -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack diff --git a/planet/Objects.ocd/Goals.ocd/Parkour.ocd/CheckPoint.ocd/Flag.ocd/DefCore.txt b/planet/Objects.ocd/Goals.ocd/Parkour.ocd/CheckPoint.ocd/Flag.ocd/DefCore.txt index d9aadef22..2ea8ae1c0 100644 --- a/planet/Objects.ocd/Goals.ocd/Parkour.ocd/CheckPoint.ocd/Flag.ocd/DefCore.txt +++ b/planet/Objects.ocd/Goals.ocd/Parkour.ocd/CheckPoint.ocd/Flag.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=ParkourFlag -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack Width=64 Height=64 diff --git a/planet/Objects.ocd/Goals.ocd/Parkour.ocd/DefCore.txt b/planet/Objects.ocd/Goals.ocd/Parkour.ocd/DefCore.txt index c46ae46d6..1b3a97fdb 100644 --- a/planet/Objects.ocd/Goals.ocd/Parkour.ocd/DefCore.txt +++ b/planet/Objects.ocd/Goals.ocd/Parkour.ocd/DefCore.txt @@ -1,5 +1,5 @@ [DefCore] id=Goal_Parkour -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack|C4D_Goal Picture=0,0,128,128 diff --git a/planet/Objects.ocd/Goals.ocd/Resource.ocd/DefCore.txt b/planet/Objects.ocd/Goals.ocd/Resource.ocd/DefCore.txt index 7ffb30367..43e869504 100644 --- a/planet/Objects.ocd/Goals.ocd/Resource.ocd/DefCore.txt +++ b/planet/Objects.ocd/Goals.ocd/Resource.ocd/DefCore.txt @@ -1,5 +1,5 @@ [DefCore] id=Goal_ResourceExtraction -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack|C4D_Goal Picture=0,0,128,128 diff --git a/planet/Objects.ocd/Goals.ocd/RubyHunt.ocd/DefCore.txt b/planet/Objects.ocd/Goals.ocd/RubyHunt.ocd/DefCore.txt index b66ec5a61..443520c6a 100644 --- a/planet/Objects.ocd/Goals.ocd/RubyHunt.ocd/DefCore.txt +++ b/planet/Objects.ocd/Goals.ocd/RubyHunt.ocd/DefCore.txt @@ -1,5 +1,5 @@ [DefCore] id=Goal_RubyHunt -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack|C4D_Goal Picture=0,0,128,128 diff --git a/planet/Objects.ocd/Goals.ocd/ScriptGoal.ocd/DefCore.txt b/planet/Objects.ocd/Goals.ocd/ScriptGoal.ocd/DefCore.txt index 1e039131c..2ea0dd4ca 100644 --- a/planet/Objects.ocd/Goals.ocd/ScriptGoal.ocd/DefCore.txt +++ b/planet/Objects.ocd/Goals.ocd/ScriptGoal.ocd/DefCore.txt @@ -1,5 +1,5 @@ [DefCore] id=Goal_Script -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack|C4D_Goal Picture=0,0,128,128 diff --git a/planet/Objects.ocd/Goals.ocd/SellGems.ocd/DefCore.txt b/planet/Objects.ocd/Goals.ocd/SellGems.ocd/DefCore.txt index 9b0478527..df802dcbb 100644 --- a/planet/Objects.ocd/Goals.ocd/SellGems.ocd/DefCore.txt +++ b/planet/Objects.ocd/Goals.ocd/SellGems.ocd/DefCore.txt @@ -1,5 +1,5 @@ [DefCore] id=Goal_SellGems -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack|C4D_Goal Picture=0,0,128,128 diff --git a/planet/Objects.ocd/Goals.ocd/Wealth.ocd/DefCore.txt b/planet/Objects.ocd/Goals.ocd/Wealth.ocd/DefCore.txt index fbc42c840..85ba6bf23 100644 --- a/planet/Objects.ocd/Goals.ocd/Wealth.ocd/DefCore.txt +++ b/planet/Objects.ocd/Goals.ocd/Wealth.ocd/DefCore.txt @@ -1,5 +1,5 @@ [DefCore] id=Goal_Wealth -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack|C4D_Goal Picture=0,0,128,128 diff --git a/planet/Objects.ocd/HUD.ocd/CircleMenu.ocd/ContentsMenuController.ocd/DefCore.txt b/planet/Objects.ocd/HUD.ocd/CircleMenu.ocd/ContentsMenuController.ocd/DefCore.txt index e34e60384..6c622270e 100644 --- a/planet/Objects.ocd/HUD.ocd/CircleMenu.ocd/ContentsMenuController.ocd/DefCore.txt +++ b/planet/Objects.ocd/HUD.ocd/CircleMenu.ocd/ContentsMenuController.ocd/DefCore.txt @@ -1,4 +1,4 @@ [DefCore] id=GUI_Contents_Controller -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack \ No newline at end of file diff --git a/planet/Objects.ocd/HUD.ocd/CircleMenu.ocd/DefCore.txt b/planet/Objects.ocd/HUD.ocd/CircleMenu.ocd/DefCore.txt index 201ec630a..065ac3bf6 100644 --- a/planet/Objects.ocd/HUD.ocd/CircleMenu.ocd/DefCore.txt +++ b/planet/Objects.ocd/HUD.ocd/CircleMenu.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=GUI_CircleMenu -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack | C4D_IgnoreFoW | C4D_Foreground | C4D_Parallax | C4D_MouseSelect Width=320 Height=320 diff --git a/planet/Objects.ocd/HUD.ocd/Controller.ocd/DefCore.txt b/planet/Objects.ocd/HUD.ocd/Controller.ocd/DefCore.txt index ab5bba5f8..0927477bd 100644 --- a/planet/Objects.ocd/HUD.ocd/Controller.ocd/DefCore.txt +++ b/planet/Objects.ocd/HUD.ocd/Controller.ocd/DefCore.txt @@ -1,4 +1,4 @@ [DefCore] id=GUI_Controller -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack | C4D_Environment diff --git a/planet/Objects.ocd/HUD.ocd/Elements.ocd/Backpack_Slot.ocd/DefCore.txt b/planet/Objects.ocd/HUD.ocd/Elements.ocd/Backpack_Slot.ocd/DefCore.txt index 4c30634df..f48b2bc50 100644 --- a/planet/Objects.ocd/HUD.ocd/Elements.ocd/Backpack_Slot.ocd/DefCore.txt +++ b/planet/Objects.ocd/HUD.ocd/Elements.ocd/Backpack_Slot.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=GUI_Backpack_Slot_Icon -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack | C4D_IgnoreFoW | C4D_Foreground | C4D_Parallax | C4D_MouseSelect Width=64 Height=64 diff --git a/planet/Objects.ocd/HUD.ocd/Elements.ocd/CrewSelector.ocd/DefCore.txt b/planet/Objects.ocd/HUD.ocd/Elements.ocd/CrewSelector.ocd/DefCore.txt index f4f38f49e..5f7d67ea0 100644 --- a/planet/Objects.ocd/HUD.ocd/Elements.ocd/CrewSelector.ocd/DefCore.txt +++ b/planet/Objects.ocd/HUD.ocd/Elements.ocd/CrewSelector.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=GUI_CrewSelector -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack | C4D_IgnoreFoW | C4D_Foreground | C4D_Parallax | C4D_MouseSelect Width=96 Height=96 diff --git a/planet/Objects.ocd/HUD.ocd/Elements.ocd/Goal.ocd/DefCore.txt b/planet/Objects.ocd/HUD.ocd/Elements.ocd/Goal.ocd/DefCore.txt index 6d2fe5db7..76daf6287 100644 --- a/planet/Objects.ocd/HUD.ocd/Elements.ocd/Goal.ocd/DefCore.txt +++ b/planet/Objects.ocd/HUD.ocd/Elements.ocd/Goal.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=GUI_Goal -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack | C4D_IgnoreFoW | C4D_Foreground | C4D_Parallax | C4D_MouseSelect Width=64 Height=64 diff --git a/planet/Objects.ocd/HUD.ocd/Elements.ocd/Marker.ocd/DefCore.txt b/planet/Objects.ocd/HUD.ocd/Elements.ocd/Marker.ocd/DefCore.txt index 1044209d0..797acebfc 100644 --- a/planet/Objects.ocd/HUD.ocd/Elements.ocd/Marker.ocd/DefCore.txt +++ b/planet/Objects.ocd/HUD.ocd/Elements.ocd/Marker.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=GUI_Marker -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack | C4D_IgnoreFoW | C4D_Foreground | C4D_Parallax | C4D_MouseSelect Width=40 Height=40 diff --git a/planet/Objects.ocd/HUD.ocd/Elements.ocd/ObjectSelector.ocd/DefCore.txt b/planet/Objects.ocd/HUD.ocd/Elements.ocd/ObjectSelector.ocd/DefCore.txt index bdcf5dfa8..5eaeda1ee 100644 --- a/planet/Objects.ocd/HUD.ocd/Elements.ocd/ObjectSelector.ocd/DefCore.txt +++ b/planet/Objects.ocd/HUD.ocd/Elements.ocd/ObjectSelector.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=GUI_ObjectSelector -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack | C4D_IgnoreFoW | C4D_Foreground | C4D_Parallax | C4D_MouseSelect Width=96 Height=96 diff --git a/planet/Objects.ocd/HUD.ocd/Elements.ocd/ObjectSelector.ocd/ExtraSlot.ocd/DefCore.txt b/planet/Objects.ocd/HUD.ocd/Elements.ocd/ObjectSelector.ocd/ExtraSlot.ocd/DefCore.txt index e5eaee089..edc72af02 100644 --- a/planet/Objects.ocd/HUD.ocd/Elements.ocd/ObjectSelector.ocd/ExtraSlot.ocd/DefCore.txt +++ b/planet/Objects.ocd/HUD.ocd/Elements.ocd/ObjectSelector.ocd/ExtraSlot.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=GUI_ExtraSlot -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack | C4D_IgnoreFoW | C4D_Foreground | C4D_Parallax | C4D_MouseSelect Width=32 Height=32 diff --git a/planet/Objects.ocd/HUD.ocd/Elements.ocd/Wealth.ocd/DefCore.txt b/planet/Objects.ocd/HUD.ocd/Elements.ocd/Wealth.ocd/DefCore.txt index 9a2f5a4a2..553c70834 100644 --- a/planet/Objects.ocd/HUD.ocd/Elements.ocd/Wealth.ocd/DefCore.txt +++ b/planet/Objects.ocd/HUD.ocd/Elements.ocd/Wealth.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=GUI_Wealth -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack | C4D_IgnoreFoW | C4D_Foreground | C4D_Parallax Width=64 Height=64 diff --git a/planet/Objects.ocd/HUD.ocd/FancyGridMenu.ocd/DefCore.txt b/planet/Objects.ocd/HUD.ocd/FancyGridMenu.ocd/DefCore.txt index 0c28237f0..51e2edd3c 100644 --- a/planet/Objects.ocd/HUD.ocd/FancyGridMenu.ocd/DefCore.txt +++ b/planet/Objects.ocd/HUD.ocd/FancyGridMenu.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=GUI_FancyGridMenu -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack | C4D_IgnoreFoW | C4D_Foreground | C4D_Parallax | C4D_MouseSelect Width=1 Height=1 diff --git a/planet/Objects.ocd/HUD.ocd/GridMenu.ocd/DefCore.txt b/planet/Objects.ocd/HUD.ocd/GridMenu.ocd/DefCore.txt index e439c8071..b6add76e6 100644 --- a/planet/Objects.ocd/HUD.ocd/GridMenu.ocd/DefCore.txt +++ b/planet/Objects.ocd/HUD.ocd/GridMenu.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=GUI_GridMenu -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack | C4D_IgnoreFoW | C4D_Foreground | C4D_Parallax | C4D_MouseSelect Width=1 Height=1 diff --git a/planet/Objects.ocd/HUD.ocd/Menu.ocd/DefCore.txt b/planet/Objects.ocd/HUD.ocd/Menu.ocd/DefCore.txt index bd4ac87d3..560526a54 100644 --- a/planet/Objects.ocd/HUD.ocd/Menu.ocd/DefCore.txt +++ b/planet/Objects.ocd/HUD.ocd/Menu.ocd/DefCore.txt @@ -1,4 +1,4 @@ [DefCore] id=Library_Menu -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack \ No newline at end of file diff --git a/planet/Objects.ocd/HUD.ocd/Menu.ocd/MenuItem.ocd/DefCore.txt b/planet/Objects.ocd/HUD.ocd/Menu.ocd/MenuItem.ocd/DefCore.txt index fc7c327f2..66059f7c2 100644 --- a/planet/Objects.ocd/HUD.ocd/Menu.ocd/MenuItem.ocd/DefCore.txt +++ b/planet/Objects.ocd/HUD.ocd/Menu.ocd/MenuItem.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=GUI_MenuItem -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack | C4D_IgnoreFoW | C4D_Foreground | C4D_Parallax | C4D_MouseSelect Width=96 Height=96 diff --git a/planet/Objects.ocd/HUD.ocd/MenuDeco.ocd/DefCore.txt b/planet/Objects.ocd/HUD.ocd/MenuDeco.ocd/DefCore.txt index e4b24b923..258ea5ab7 100644 --- a/planet/Objects.ocd/HUD.ocd/MenuDeco.ocd/DefCore.txt +++ b/planet/Objects.ocd/HUD.ocd/MenuDeco.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=GUI_MenuDeco -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack Width=1 Height=1 diff --git a/planet/Objects.ocd/HUD.ocd/ProgressBar.ocd/BarProgressBar.ocd/DefCore.txt b/planet/Objects.ocd/HUD.ocd/ProgressBar.ocd/BarProgressBar.ocd/DefCore.txt index 2aef1c30e..9d4dc7932 100644 --- a/planet/Objects.ocd/HUD.ocd/ProgressBar.ocd/BarProgressBar.ocd/DefCore.txt +++ b/planet/Objects.ocd/HUD.ocd/ProgressBar.ocd/BarProgressBar.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=GUI_BarProgressBar -Version=4,10,0,0 +Version=6,0 Category=C4D_Vehicle Width=8 Height=8 diff --git a/planet/Objects.ocd/HUD.ocd/ProgressBar.ocd/CustomImageProgressBar.ocd/DefCore.txt b/planet/Objects.ocd/HUD.ocd/ProgressBar.ocd/CustomImageProgressBar.ocd/DefCore.txt index a0680e33c..440c13f57 100644 --- a/planet/Objects.ocd/HUD.ocd/ProgressBar.ocd/CustomImageProgressBar.ocd/DefCore.txt +++ b/planet/Objects.ocd/HUD.ocd/ProgressBar.ocd/CustomImageProgressBar.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=GUI_CustomImageProgressBar -Version=4,10,0,0 +Version=6,0 Category=C4D_Vehicle Width=64 Height=64 diff --git a/planet/Objects.ocd/HUD.ocd/ProgressBar.ocd/CustomRingProgressBar.ocd/DefCore.txt b/planet/Objects.ocd/HUD.ocd/ProgressBar.ocd/CustomRingProgressBar.ocd/DefCore.txt index bec8c578e..0ce502338 100644 --- a/planet/Objects.ocd/HUD.ocd/ProgressBar.ocd/CustomRingProgressBar.ocd/DefCore.txt +++ b/planet/Objects.ocd/HUD.ocd/ProgressBar.ocd/CustomRingProgressBar.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=GUI_CustomRingProgressBar -Version=4,10,0,0 +Version=6,0 Category=C4D_Vehicle Width=8 Height=8 diff --git a/planet/Objects.ocd/HUD.ocd/ProgressBar.ocd/DefCore.txt b/planet/Objects.ocd/HUD.ocd/ProgressBar.ocd/DefCore.txt index 8c30e9f81..2623e87fc 100644 --- a/planet/Objects.ocd/HUD.ocd/ProgressBar.ocd/DefCore.txt +++ b/planet/Objects.ocd/HUD.ocd/ProgressBar.ocd/DefCore.txt @@ -1,5 +1,5 @@ [DefCore] id=GUI_ProgressBar -Version=4,10,0,0 +Version=6,0 Category=C4D_StaticBack diff --git a/planet/Objects.ocd/HUD.ocd/ProgressBar.ocd/PieProgressBar.ocd/DefCore.txt b/planet/Objects.ocd/HUD.ocd/ProgressBar.ocd/PieProgressBar.ocd/DefCore.txt index f8267ddf0..1904ae54e 100644 --- a/planet/Objects.ocd/HUD.ocd/ProgressBar.ocd/PieProgressBar.ocd/DefCore.txt +++ b/planet/Objects.ocd/HUD.ocd/ProgressBar.ocd/PieProgressBar.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=GUI_PieProgressBar -Version=4,10,0,0 +Version=6,0 Category=C4D_Vehicle Width=8 Height=8 diff --git a/planet/Objects.ocd/HUD.ocd/ProgressBar.ocd/RingProgressBar.ocd/DefCore.txt b/planet/Objects.ocd/HUD.ocd/ProgressBar.ocd/RingProgressBar.ocd/DefCore.txt index 128b7c72d..46ae5908c 100644 --- a/planet/Objects.ocd/HUD.ocd/ProgressBar.ocd/RingProgressBar.ocd/DefCore.txt +++ b/planet/Objects.ocd/HUD.ocd/ProgressBar.ocd/RingProgressBar.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=GUI_RingProgressBar -Version=4,10,0,0 +Version=6,0 Category=C4D_Vehicle Width=8 Height=8 diff --git a/planet/Objects.ocd/HUD.ocd/ProgressBar.ocd/ShadedSimpleProgressBar.ocd/DefCore.txt b/planet/Objects.ocd/HUD.ocd/ProgressBar.ocd/ShadedSimpleProgressBar.ocd/DefCore.txt index 83877c6e5..2163e0a15 100644 --- a/planet/Objects.ocd/HUD.ocd/ProgressBar.ocd/ShadedSimpleProgressBar.ocd/DefCore.txt +++ b/planet/Objects.ocd/HUD.ocd/ProgressBar.ocd/ShadedSimpleProgressBar.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=GUI_ShadedSimpleProgressBar -Version=4,10,0,0 +Version=6,0 Category=C4D_Vehicle Width=110 Height=19 diff --git a/planet/Objects.ocd/HUD.ocd/ProgressBar.ocd/SimpleProgressBar.ocd/DefCore.txt b/planet/Objects.ocd/HUD.ocd/ProgressBar.ocd/SimpleProgressBar.ocd/DefCore.txt index 62f955e15..eb1028260 100644 --- a/planet/Objects.ocd/HUD.ocd/ProgressBar.ocd/SimpleProgressBar.ocd/DefCore.txt +++ b/planet/Objects.ocd/HUD.ocd/ProgressBar.ocd/SimpleProgressBar.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=GUI_SimpleProgressBar -Version=4,10,0,0 +Version=6,0 Category=C4D_Vehicle Width=16 Height=16 diff --git a/planet/Objects.ocd/HUD.ocd/Ringmenu.ocd/DefCore.txt b/planet/Objects.ocd/HUD.ocd/Ringmenu.ocd/DefCore.txt index aed09ad04..16ca584db 100644 --- a/planet/Objects.ocd/HUD.ocd/Ringmenu.ocd/DefCore.txt +++ b/planet/Objects.ocd/HUD.ocd/Ringmenu.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=GUI_RingMenu -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack | C4D_IgnoreFoW | C4D_Foreground | C4D_Parallax Width=64 Height=64 diff --git a/planet/Objects.ocd/HUD.ocd/Ringmenu.ocd/Menupoint.ocd/DefCore.txt b/planet/Objects.ocd/HUD.ocd/Ringmenu.ocd/Menupoint.ocd/DefCore.txt index 5b694d576..18a3abd8e 100644 --- a/planet/Objects.ocd/HUD.ocd/Ringmenu.ocd/Menupoint.ocd/DefCore.txt +++ b/planet/Objects.ocd/HUD.ocd/Ringmenu.ocd/Menupoint.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=GUI_RingMenu_Icon -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack | C4D_IgnoreFoW | C4D_Foreground | C4D_Parallax Width=96 Height=96 diff --git a/planet/Objects.ocd/HUD.ocd/Scoreboard.ocd/DefCore.txt b/planet/Objects.ocd/HUD.ocd/Scoreboard.ocd/DefCore.txt index bee3f8989..779ebe920 100644 --- a/planet/Objects.ocd/HUD.ocd/Scoreboard.ocd/DefCore.txt +++ b/planet/Objects.ocd/HUD.ocd/Scoreboard.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Scoreboard -Version=4,10,0,0 +Version=6,0 Category=C4D_StaticBack Width=1 Height=1 diff --git a/planet/Objects.ocd/Helpers.ocd/Dialogue.ocd/DefCore.txt b/planet/Objects.ocd/Helpers.ocd/Dialogue.ocd/DefCore.txt index 29b5bea70..f09d5bc91 100644 --- a/planet/Objects.ocd/Helpers.ocd/Dialogue.ocd/DefCore.txt +++ b/planet/Objects.ocd/Helpers.ocd/Dialogue.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Dialogue -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack Width=8 Height=20 diff --git a/planet/Objects.ocd/Helpers.ocd/Dummy.ocd/DefCore.txt b/planet/Objects.ocd/Helpers.ocd/Dummy.ocd/DefCore.txt index bf927097a..1b1cf534b 100644 --- a/planet/Objects.ocd/Helpers.ocd/Dummy.ocd/DefCore.txt +++ b/planet/Objects.ocd/Helpers.ocd/Dummy.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Dummy -Version=5,3,0,0 +Version=6,0 Category=C4D_StaticBack Width=8 Height=8 diff --git a/planet/Objects.ocd/Helpers.ocd/EnemyAI.ocd/DebugLine.ocd/DefCore.txt b/planet/Objects.ocd/Helpers.ocd/EnemyAI.ocd/DebugLine.ocd/DefCore.txt index 382d870a7..6250db7d9 100644 --- a/planet/Objects.ocd/Helpers.ocd/EnemyAI.ocd/DebugLine.ocd/DefCore.txt +++ b/planet/Objects.ocd/Helpers.ocd/EnemyAI.ocd/DebugLine.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=DebugLine -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack Vertices=2 Line=1 diff --git a/planet/Objects.ocd/Helpers.ocd/EnemyAI.ocd/DefCore.txt b/planet/Objects.ocd/Helpers.ocd/EnemyAI.ocd/DefCore.txt index c978b396a..f41304a74 100644 --- a/planet/Objects.ocd/Helpers.ocd/EnemyAI.ocd/DefCore.txt +++ b/planet/Objects.ocd/Helpers.ocd/EnemyAI.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=S2AI -Version=5,2,0,1 +Version=6,0 Category=C4D_Vehicle | C4D_MouseIgnore Width=1 Height=1 diff --git a/planet/Objects.ocd/Helpers.ocd/FloatingMessage.ocd/DefCore.txt b/planet/Objects.ocd/Helpers.ocd/FloatingMessage.ocd/DefCore.txt index 16cf72c3f..23606385f 100644 --- a/planet/Objects.ocd/Helpers.ocd/FloatingMessage.ocd/DefCore.txt +++ b/planet/Objects.ocd/Helpers.ocd/FloatingMessage.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=FloatingMessage -Version=5,2,0,1 +Version=6,0 Category=C4D_Vehicle Width=8 Height=8 diff --git a/planet/Objects.ocd/Helpers.ocd/ObjectRestorer.ocd/DefCore.txt b/planet/Objects.ocd/Helpers.ocd/ObjectRestorer.ocd/DefCore.txt index c55b5b00c..d5687058a 100644 --- a/planet/Objects.ocd/Helpers.ocd/ObjectRestorer.ocd/DefCore.txt +++ b/planet/Objects.ocd/Helpers.ocd/ObjectRestorer.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=ObjectRestorer -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack Width=1 Height=1 diff --git a/planet/Objects.ocd/Helpers.ocd/Sequence.ocd/DefCore.txt b/planet/Objects.ocd/Helpers.ocd/Sequence.ocd/DefCore.txt index 602fb2dc2..df247e1df 100644 --- a/planet/Objects.ocd/Helpers.ocd/Sequence.ocd/DefCore.txt +++ b/planet/Objects.ocd/Helpers.ocd/Sequence.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Sequence -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack|C4D_Environment Width=1 Height=1 diff --git a/planet/Objects.ocd/Helpers.ocd/StatusSymbol.ocd/DefCore.txt b/planet/Objects.ocd/Helpers.ocd/StatusSymbol.ocd/DefCore.txt index 0304144dd..723abb89f 100644 --- a/planet/Objects.ocd/Helpers.ocd/StatusSymbol.ocd/DefCore.txt +++ b/planet/Objects.ocd/Helpers.ocd/StatusSymbol.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=StatusSymbol -Version=4,10,0,0 +Version=6,0 Category=C4D_Vehicle | C4D_MouseIgnore Width=1 Height=1 diff --git a/planet/Objects.ocd/Icons.ocd/Cancel.ocd/DefCore.txt b/planet/Objects.ocd/Icons.ocd/Cancel.ocd/DefCore.txt index 2a2d29724..9c044530c 100644 --- a/planet/Objects.ocd/Icons.ocd/Cancel.ocd/DefCore.txt +++ b/planet/Objects.ocd/Icons.ocd/Cancel.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Icon_Cancel -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack Picture=0,0,32,32 Width=32 diff --git a/planet/Objects.ocd/Icons.ocd/Coins.ocd/DefCore.txt b/planet/Objects.ocd/Icons.ocd/Coins.ocd/DefCore.txt index c180406cc..d6153ca30 100644 --- a/planet/Objects.ocd/Icons.ocd/Coins.ocd/DefCore.txt +++ b/planet/Objects.ocd/Icons.ocd/Coins.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Icon_Coins -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack Picture=0,0,32,32 Width=32 diff --git a/planet/Objects.ocd/Icons.ocd/Lightbulb.ocd/DefCore.txt b/planet/Objects.ocd/Icons.ocd/Lightbulb.ocd/DefCore.txt index 0f5d76c9b..c99c21a44 100644 --- a/planet/Objects.ocd/Icons.ocd/Lightbulb.ocd/DefCore.txt +++ b/planet/Objects.ocd/Icons.ocd/Lightbulb.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Icon_Lightbulb -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack Picture=0,0,64,64 Width=64 diff --git a/planet/Objects.ocd/Icons.ocd/Number.ocd/DefCore.txt b/planet/Objects.ocd/Icons.ocd/Number.ocd/DefCore.txt index 32db6a840..b1cf6cd37 100644 --- a/planet/Objects.ocd/Icons.ocd/Number.ocd/DefCore.txt +++ b/planet/Objects.ocd/Icons.ocd/Number.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Icon_Number -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack Picture=0,0,64,64 Width=64 diff --git a/planet/Objects.ocd/Icons.ocd/Ok.ocd/DefCore.txt b/planet/Objects.ocd/Icons.ocd/Ok.ocd/DefCore.txt index a3a9c7e41..50f84336e 100644 --- a/planet/Objects.ocd/Icons.ocd/Ok.ocd/DefCore.txt +++ b/planet/Objects.ocd/Icons.ocd/Ok.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Icon_Ok -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack Picture=0,0,32,32 Width=32 diff --git a/planet/Objects.ocd/Icons.ocd/Play.ocd/DefCore.txt b/planet/Objects.ocd/Icons.ocd/Play.ocd/DefCore.txt index 7f88a79ac..21e784a3b 100644 --- a/planet/Objects.ocd/Icons.ocd/Play.ocd/DefCore.txt +++ b/planet/Objects.ocd/Icons.ocd/Play.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Icon_Play -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack Picture=0,0,32,32 Width=32 diff --git a/planet/Objects.ocd/Icons.ocd/SlimNumber.ocd/DefCore.txt b/planet/Objects.ocd/Icons.ocd/SlimNumber.ocd/DefCore.txt index ff2ffa64d..0267e1895 100644 --- a/planet/Objects.ocd/Icons.ocd/SlimNumber.ocd/DefCore.txt +++ b/planet/Objects.ocd/Icons.ocd/SlimNumber.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Icon_SlimNumber -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack Picture=0,0,32,64 Width=32 diff --git a/planet/Objects.ocd/Icons.ocd/Stop.ocd/DefCore.txt b/planet/Objects.ocd/Icons.ocd/Stop.ocd/DefCore.txt index 9e6bf7d53..387f68eea 100644 --- a/planet/Objects.ocd/Icons.ocd/Stop.ocd/DefCore.txt +++ b/planet/Objects.ocd/Icons.ocd/Stop.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Icon_Stop -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack Picture=0,0,32,32 Width=32 diff --git a/planet/Objects.ocd/Items.ocd/Foodstuff.ocd/Bread.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Foodstuff.ocd/Bread.ocd/DefCore.txt index 0d9f3e401..a510e5e8f 100644 --- a/planet/Objects.ocd/Items.ocd/Foodstuff.ocd/Bread.ocd/DefCore.txt +++ b/planet/Objects.ocd/Items.ocd/Foodstuff.ocd/Bread.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Bread -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=8 Height=4 diff --git a/planet/Objects.ocd/Items.ocd/Foodstuff.ocd/CookedMushroom.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Foodstuff.ocd/CookedMushroom.ocd/DefCore.txt index 606d95930..4514a000c 100644 --- a/planet/Objects.ocd/Items.ocd/Foodstuff.ocd/CookedMushroom.ocd/DefCore.txt +++ b/planet/Objects.ocd/Items.ocd/Foodstuff.ocd/CookedMushroom.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=CookedMushroom -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=12 Height=20 diff --git a/planet/Objects.ocd/Items.ocd/Foodstuff.ocd/Flour.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Foodstuff.ocd/Flour.ocd/DefCore.txt index 791f25f98..d586d98ba 100644 --- a/planet/Objects.ocd/Items.ocd/Foodstuff.ocd/Flour.ocd/DefCore.txt +++ b/planet/Objects.ocd/Items.ocd/Foodstuff.ocd/Flour.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Flour -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=8 Height=8 diff --git a/planet/Objects.ocd/Items.ocd/Foodstuff.ocd/Sproutberry.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Foodstuff.ocd/Sproutberry.ocd/DefCore.txt index 02082805a..1385780d3 100644 --- a/planet/Objects.ocd/Items.ocd/Foodstuff.ocd/Sproutberry.ocd/DefCore.txt +++ b/planet/Objects.ocd/Items.ocd/Foodstuff.ocd/Sproutberry.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Sproutberry -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=8 Height=8 diff --git a/planet/Objects.ocd/Items.ocd/Resources.ocd/Amethyst.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Resources.ocd/Amethyst.ocd/DefCore.txt index c0ed8c8be..b10838d3f 100644 --- a/planet/Objects.ocd/Items.ocd/Resources.ocd/Amethyst.ocd/DefCore.txt +++ b/planet/Objects.ocd/Items.ocd/Resources.ocd/Amethyst.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Amethyst -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=8 Height=8 diff --git a/planet/Objects.ocd/Items.ocd/Resources.ocd/Cloth.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Resources.ocd/Cloth.ocd/DefCore.txt index 22d874a4c..cbb51f475 100644 --- a/planet/Objects.ocd/Items.ocd/Resources.ocd/Cloth.ocd/DefCore.txt +++ b/planet/Objects.ocd/Items.ocd/Resources.ocd/Cloth.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Cloth -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=8 Height=4 diff --git a/planet/Objects.ocd/Items.ocd/Resources.ocd/Coal.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Resources.ocd/Coal.ocd/DefCore.txt index 83a9114ca..8e2c2576d 100644 --- a/planet/Objects.ocd/Items.ocd/Resources.ocd/Coal.ocd/DefCore.txt +++ b/planet/Objects.ocd/Items.ocd/Resources.ocd/Coal.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Coal -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=8 Height=8 diff --git a/planet/Objects.ocd/Items.ocd/Resources.ocd/Cotton.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Resources.ocd/Cotton.ocd/DefCore.txt index 03feefcb0..5da0af51c 100644 --- a/planet/Objects.ocd/Items.ocd/Resources.ocd/Cotton.ocd/DefCore.txt +++ b/planet/Objects.ocd/Items.ocd/Resources.ocd/Cotton.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Cotton -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=8 Height=8 diff --git a/planet/Objects.ocd/Items.ocd/Resources.ocd/Earth.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Resources.ocd/Earth.ocd/DefCore.txt index b7b24bdf0..070be62d9 100644 --- a/planet/Objects.ocd/Items.ocd/Resources.ocd/Earth.ocd/DefCore.txt +++ b/planet/Objects.ocd/Items.ocd/Resources.ocd/Earth.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Earth -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=8 Height=8 diff --git a/planet/Objects.ocd/Items.ocd/Resources.ocd/Firestone.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Resources.ocd/Firestone.ocd/DefCore.txt index bfc4d8d9b..d4764b12b 100644 --- a/planet/Objects.ocd/Items.ocd/Resources.ocd/Firestone.ocd/DefCore.txt +++ b/planet/Objects.ocd/Items.ocd/Resources.ocd/Firestone.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Firestone -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=8 Height=8 diff --git a/planet/Objects.ocd/Items.ocd/Resources.ocd/GoldBar.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Resources.ocd/GoldBar.ocd/DefCore.txt index a054a23ca..2cba24540 100644 --- a/planet/Objects.ocd/Items.ocd/Resources.ocd/GoldBar.ocd/DefCore.txt +++ b/planet/Objects.ocd/Items.ocd/Resources.ocd/GoldBar.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=GoldBar -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=10 Height=4 diff --git a/planet/Objects.ocd/Items.ocd/Resources.ocd/Ice.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Resources.ocd/Ice.ocd/DefCore.txt index 78ca253e5..35a1892a4 100644 --- a/planet/Objects.ocd/Items.ocd/Resources.ocd/Ice.ocd/DefCore.txt +++ b/planet/Objects.ocd/Items.ocd/Resources.ocd/Ice.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Ice -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=8 Height=8 diff --git a/planet/Objects.ocd/Items.ocd/Resources.ocd/Loam.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Resources.ocd/Loam.ocd/DefCore.txt index 965b81f02..850c356bd 100644 --- a/planet/Objects.ocd/Items.ocd/Resources.ocd/Loam.ocd/DefCore.txt +++ b/planet/Objects.ocd/Items.ocd/Resources.ocd/Loam.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Loam -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=8 Height=8 diff --git a/planet/Objects.ocd/Items.ocd/Resources.ocd/Metal.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Resources.ocd/Metal.ocd/DefCore.txt index 563dca3e6..be93eabcd 100644 --- a/planet/Objects.ocd/Items.ocd/Resources.ocd/Metal.ocd/DefCore.txt +++ b/planet/Objects.ocd/Items.ocd/Resources.ocd/Metal.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Metal -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=12 Height=4 diff --git a/planet/Objects.ocd/Items.ocd/Resources.ocd/Moss.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Resources.ocd/Moss.ocd/DefCore.txt index 39e6c0fc0..050215574 100644 --- a/planet/Objects.ocd/Items.ocd/Resources.ocd/Moss.ocd/DefCore.txt +++ b/planet/Objects.ocd/Items.ocd/Resources.ocd/Moss.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Moss -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=8 Height=8 diff --git a/planet/Objects.ocd/Items.ocd/Resources.ocd/Nugget.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Resources.ocd/Nugget.ocd/DefCore.txt index cbaa9ac7b..fcff622e4 100644 --- a/planet/Objects.ocd/Items.ocd/Resources.ocd/Nugget.ocd/DefCore.txt +++ b/planet/Objects.ocd/Items.ocd/Resources.ocd/Nugget.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Nugget -Version=4,10,0,0 +Version=6,0 Category=C4D_Object Width=8 Height=8 diff --git a/planet/Objects.ocd/Items.ocd/Resources.ocd/Ore.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Resources.ocd/Ore.ocd/DefCore.txt index b633f1be8..424941c30 100644 --- a/planet/Objects.ocd/Items.ocd/Resources.ocd/Ore.ocd/DefCore.txt +++ b/planet/Objects.ocd/Items.ocd/Resources.ocd/Ore.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Ore -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=8 Height=8 diff --git a/planet/Objects.ocd/Items.ocd/Resources.ocd/Rock.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Resources.ocd/Rock.ocd/DefCore.txt index 5c6ec11d9..8096b26c8 100644 --- a/planet/Objects.ocd/Items.ocd/Resources.ocd/Rock.ocd/DefCore.txt +++ b/planet/Objects.ocd/Items.ocd/Resources.ocd/Rock.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Rock -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=8 Height=8 diff --git a/planet/Objects.ocd/Items.ocd/Resources.ocd/Ruby.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Resources.ocd/Ruby.ocd/DefCore.txt index dd7def241..007768c14 100644 --- a/planet/Objects.ocd/Items.ocd/Resources.ocd/Ruby.ocd/DefCore.txt +++ b/planet/Objects.ocd/Items.ocd/Resources.ocd/Ruby.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Ruby -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=8 Height=8 diff --git a/planet/Objects.ocd/Items.ocd/Resources.ocd/Seeds.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Resources.ocd/Seeds.ocd/DefCore.txt index 1e4e4036c..77855dfa5 100644 --- a/planet/Objects.ocd/Items.ocd/Resources.ocd/Seeds.ocd/DefCore.txt +++ b/planet/Objects.ocd/Items.ocd/Resources.ocd/Seeds.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Seeds -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=8 Height=8 diff --git a/planet/Objects.ocd/Items.ocd/Resources.ocd/Snow.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Resources.ocd/Snow.ocd/DefCore.txt index c56125af9..5fec454b0 100644 --- a/planet/Objects.ocd/Items.ocd/Resources.ocd/Snow.ocd/DefCore.txt +++ b/planet/Objects.ocd/Items.ocd/Resources.ocd/Snow.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Snow -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=8 Height=8 diff --git a/planet/Objects.ocd/Items.ocd/Resources.ocd/Sulphur.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Resources.ocd/Sulphur.ocd/DefCore.txt index a86bea810..a81045504 100644 --- a/planet/Objects.ocd/Items.ocd/Resources.ocd/Sulphur.ocd/DefCore.txt +++ b/planet/Objects.ocd/Items.ocd/Resources.ocd/Sulphur.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Sulphur -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=8 Height=8 diff --git a/planet/Objects.ocd/Items.ocd/Resources.ocd/Wood.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Resources.ocd/Wood.ocd/DefCore.txt index 3845c90fd..a4fc0429e 100644 --- a/planet/Objects.ocd/Items.ocd/Resources.ocd/Wood.ocd/DefCore.txt +++ b/planet/Objects.ocd/Items.ocd/Resources.ocd/Wood.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Wood -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=12 Height=5 diff --git a/planet/Objects.ocd/Items.ocd/Tools.ocd/Axe.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Tools.ocd/Axe.ocd/DefCore.txt index 616a87a0e..7a1105640 100644 --- a/planet/Objects.ocd/Items.ocd/Tools.ocd/Axe.ocd/DefCore.txt +++ b/planet/Objects.ocd/Items.ocd/Tools.ocd/Axe.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Axe -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=6 Height=10 diff --git a/planet/Objects.ocd/Items.ocd/Tools.ocd/Balloon.ocd/BalloonDeployed.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Tools.ocd/Balloon.ocd/BalloonDeployed.ocd/DefCore.txt index 6ffa50202..e2a764247 100644 --- a/planet/Objects.ocd/Items.ocd/Tools.ocd/Balloon.ocd/BalloonDeployed.ocd/DefCore.txt +++ b/planet/Objects.ocd/Items.ocd/Tools.ocd/Balloon.ocd/BalloonDeployed.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=BalloonDeployed -Version=5,2,0,1 +Version=6,0 Category=C4D_Vehicle Width=32 Height=40 diff --git a/planet/Objects.ocd/Items.ocd/Tools.ocd/Balloon.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Tools.ocd/Balloon.ocd/DefCore.txt index 1ed6e8208..7924e7f22 100644 --- a/planet/Objects.ocd/Items.ocd/Tools.ocd/Balloon.ocd/DefCore.txt +++ b/planet/Objects.ocd/Items.ocd/Tools.ocd/Balloon.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Balloon -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=8 Height=8 diff --git a/planet/Objects.ocd/Items.ocd/Tools.ocd/Barrel.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Tools.ocd/Barrel.ocd/DefCore.txt index 201aa92e8..edb06203e 100644 --- a/planet/Objects.ocd/Items.ocd/Tools.ocd/Barrel.ocd/DefCore.txt +++ b/planet/Objects.ocd/Items.ocd/Tools.ocd/Barrel.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Barrel -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=16 Height=16 diff --git a/planet/Objects.ocd/Items.ocd/Tools.ocd/Barrel.ocd/MetalBarrel.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Tools.ocd/Barrel.ocd/MetalBarrel.ocd/DefCore.txt index 9c8340b7e..d9405c5fe 100644 --- a/planet/Objects.ocd/Items.ocd/Tools.ocd/Barrel.ocd/MetalBarrel.ocd/DefCore.txt +++ b/planet/Objects.ocd/Items.ocd/Tools.ocd/Barrel.ocd/MetalBarrel.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=MetalBarrel -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=16 Height=16 diff --git a/planet/Objects.ocd/Items.ocd/Tools.ocd/Boompack.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Tools.ocd/Boompack.ocd/DefCore.txt index ec65b2b6e..e07c39d3f 100644 --- a/planet/Objects.ocd/Items.ocd/Tools.ocd/Boompack.ocd/DefCore.txt +++ b/planet/Objects.ocd/Items.ocd/Tools.ocd/Boompack.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Boompack -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=10 Height=18 diff --git a/planet/Objects.ocd/Items.ocd/Tools.ocd/Bucket.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Tools.ocd/Bucket.ocd/DefCore.txt index 5bab20518..29dc7d314 100644 --- a/planet/Objects.ocd/Items.ocd/Tools.ocd/Bucket.ocd/DefCore.txt +++ b/planet/Objects.ocd/Items.ocd/Tools.ocd/Bucket.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Bucket -Version=4,10,0,0 +Version=6,0 Category=C4D_Object Width=7 Height=8 diff --git a/planet/Objects.ocd/Items.ocd/Tools.ocd/Crate.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Tools.ocd/Crate.ocd/DefCore.txt index dca86bff1..781923c0e 100644 --- a/planet/Objects.ocd/Items.ocd/Tools.ocd/Crate.ocd/DefCore.txt +++ b/planet/Objects.ocd/Items.ocd/Tools.ocd/Crate.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Crate -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=12 Height=12 diff --git a/planet/Objects.ocd/Items.ocd/Tools.ocd/Dynamite.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Tools.ocd/Dynamite.ocd/DefCore.txt index 2b7a14fb7..714f1404a 100644 --- a/planet/Objects.ocd/Items.ocd/Tools.ocd/Dynamite.ocd/DefCore.txt +++ b/planet/Objects.ocd/Items.ocd/Tools.ocd/Dynamite.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Dynamite -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=3 Height=10 diff --git a/planet/Objects.ocd/Items.ocd/Tools.ocd/DynamiteBox.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Tools.ocd/DynamiteBox.ocd/DefCore.txt index b8fb29923..2622dfe79 100644 --- a/planet/Objects.ocd/Items.ocd/Tools.ocd/DynamiteBox.ocd/DefCore.txt +++ b/planet/Objects.ocd/Items.ocd/Tools.ocd/DynamiteBox.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=DynamiteBox -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=8 Height=7 diff --git a/planet/Objects.ocd/Items.ocd/Tools.ocd/DynamiteBox.ocd/Fuse.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Tools.ocd/DynamiteBox.ocd/Fuse.ocd/DefCore.txt index e584323c2..3a0e376cb 100644 --- a/planet/Objects.ocd/Items.ocd/Tools.ocd/DynamiteBox.ocd/Fuse.ocd/DefCore.txt +++ b/planet/Objects.ocd/Items.ocd/Tools.ocd/DynamiteBox.ocd/Fuse.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Fuse -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack Vertices=2 Picture=0,0,64,64 diff --git a/planet/Objects.ocd/Items.ocd/Tools.ocd/DynamiteBox.ocd/Igniter.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Tools.ocd/DynamiteBox.ocd/Igniter.ocd/DefCore.txt index a43afe19a..c4dfc0776 100644 --- a/planet/Objects.ocd/Items.ocd/Tools.ocd/DynamiteBox.ocd/Igniter.ocd/DefCore.txt +++ b/planet/Objects.ocd/Items.ocd/Tools.ocd/DynamiteBox.ocd/Igniter.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Igniter -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=4 Height=6 diff --git a/planet/Objects.ocd/Items.ocd/Tools.ocd/GrappleBow.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Tools.ocd/GrappleBow.ocd/DefCore.txt index b7cef8452..bf39b45fe 100644 --- a/planet/Objects.ocd/Items.ocd/Tools.ocd/GrappleBow.ocd/DefCore.txt +++ b/planet/Objects.ocd/Items.ocd/Tools.ocd/GrappleBow.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=GrappleBow -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=8 Height=6 diff --git a/planet/Objects.ocd/Items.ocd/Tools.ocd/GrappleBow.ocd/Hook.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Tools.ocd/GrappleBow.ocd/Hook.ocd/DefCore.txt index ca448ab75..808512b2d 100644 --- a/planet/Objects.ocd/Items.ocd/Tools.ocd/GrappleBow.ocd/Hook.ocd/DefCore.txt +++ b/planet/Objects.ocd/Items.ocd/Tools.ocd/GrappleBow.ocd/Hook.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=GrappleHook -Version=5,2,0,1 +Version=6,0 Category=C4D_Vehicle Width=5 Height=6 diff --git a/planet/Objects.ocd/Items.ocd/Tools.ocd/GrappleBow.ocd/Rope.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Tools.ocd/GrappleBow.ocd/Rope.ocd/DefCore.txt index 882d6e568..9f5cc53a9 100644 --- a/planet/Objects.ocd/Items.ocd/Tools.ocd/GrappleBow.ocd/Rope.ocd/DefCore.txt +++ b/planet/Objects.ocd/Items.ocd/Tools.ocd/GrappleBow.ocd/Rope.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=GrappleRope -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack Vertices=2 Width=2 diff --git a/planet/Objects.ocd/Items.ocd/Tools.ocd/Hammer.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Tools.ocd/Hammer.ocd/DefCore.txt index 0f87b9b52..b985f4525 100644 --- a/planet/Objects.ocd/Items.ocd/Tools.ocd/Hammer.ocd/DefCore.txt +++ b/planet/Objects.ocd/Items.ocd/Tools.ocd/Hammer.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Hammer -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=8 Height=12 diff --git a/planet/Objects.ocd/Items.ocd/Tools.ocd/Pickaxe.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Tools.ocd/Pickaxe.ocd/DefCore.txt index 771b94744..0d12e7417 100644 --- a/planet/Objects.ocd/Items.ocd/Tools.ocd/Pickaxe.ocd/DefCore.txt +++ b/planet/Objects.ocd/Items.ocd/Tools.ocd/Pickaxe.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Pickaxe -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=10 Height=10 diff --git a/planet/Objects.ocd/Items.ocd/Tools.ocd/Pipe.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Tools.ocd/Pipe.ocd/DefCore.txt index 629c88cbf..6343b09ea 100644 --- a/planet/Objects.ocd/Items.ocd/Tools.ocd/Pipe.ocd/DefCore.txt +++ b/planet/Objects.ocd/Items.ocd/Tools.ocd/Pipe.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Pipe -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=8 Height=8 diff --git a/planet/Objects.ocd/Items.ocd/Tools.ocd/Pipe.ocd/PipeLine.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Tools.ocd/Pipe.ocd/PipeLine.ocd/DefCore.txt index fe0eaa3ab..76ae9ae65 100644 --- a/planet/Objects.ocd/Items.ocd/Tools.ocd/Pipe.ocd/PipeLine.ocd/DefCore.txt +++ b/planet/Objects.ocd/Items.ocd/Tools.ocd/Pipe.ocd/PipeLine.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=PipeLine -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack Vertices=2 Line=1 diff --git a/planet/Objects.ocd/Items.ocd/Tools.ocd/PowderKeg.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Tools.ocd/PowderKeg.ocd/DefCore.txt index 2229c064d..53da5c967 100644 --- a/planet/Objects.ocd/Items.ocd/Tools.ocd/PowderKeg.ocd/DefCore.txt +++ b/planet/Objects.ocd/Items.ocd/Tools.ocd/PowderKeg.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=PowderKeg -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=16 Height=16 diff --git a/planet/Objects.ocd/Items.ocd/Tools.ocd/Ropebridge.ocd/BridgeLoosePlank.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Tools.ocd/Ropebridge.ocd/BridgeLoosePlank.ocd/DefCore.txt index 692563f1c..6d0c1e5bb 100644 --- a/planet/Objects.ocd/Items.ocd/Tools.ocd/Ropebridge.ocd/BridgeLoosePlank.ocd/DefCore.txt +++ b/planet/Objects.ocd/Items.ocd/Tools.ocd/Ropebridge.ocd/BridgeLoosePlank.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=BridgePlank -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=8 Height=8 diff --git a/planet/Objects.ocd/Items.ocd/Tools.ocd/Ropebridge.ocd/BridgePost.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Tools.ocd/Ropebridge.ocd/BridgePost.ocd/DefCore.txt index 2514993e5..0938da9c2 100644 --- a/planet/Objects.ocd/Items.ocd/Tools.ocd/Ropebridge.ocd/BridgePost.ocd/DefCore.txt +++ b/planet/Objects.ocd/Items.ocd/Tools.ocd/Ropebridge.ocd/BridgePost.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Ropebridge_Post -Version=5,2,0,1 +Version=6,0 Category=C4D_Structure Picture=0,0,96,128 Width=12 diff --git a/planet/Objects.ocd/Items.ocd/Tools.ocd/Ropebridge.ocd/BridgeSegment.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Tools.ocd/Ropebridge.ocd/BridgeSegment.ocd/DefCore.txt index 35dcccf0f..3b37c3f51 100644 --- a/planet/Objects.ocd/Items.ocd/Tools.ocd/Ropebridge.ocd/BridgeSegment.ocd/DefCore.txt +++ b/planet/Objects.ocd/Items.ocd/Tools.ocd/Ropebridge.ocd/BridgeSegment.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Ropebridge_Segment -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack Width=5 Height=15 diff --git a/planet/Objects.ocd/Items.ocd/Tools.ocd/Ropebridge.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Tools.ocd/Ropebridge.ocd/DefCore.txt index c871cccfe..3c5255f78 100644 --- a/planet/Objects.ocd/Items.ocd/Tools.ocd/Ropebridge.ocd/DefCore.txt +++ b/planet/Objects.ocd/Items.ocd/Tools.ocd/Ropebridge.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Ropebridge -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=8 Height=8 diff --git a/planet/Objects.ocd/Items.ocd/Tools.ocd/Ropeladder.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Tools.ocd/Ropeladder.ocd/DefCore.txt index 1fdd10f9d..93171d053 100644 --- a/planet/Objects.ocd/Items.ocd/Tools.ocd/Ropeladder.ocd/DefCore.txt +++ b/planet/Objects.ocd/Items.ocd/Tools.ocd/Ropeladder.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Ropeladder -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=8 Height=8 diff --git a/planet/Objects.ocd/Items.ocd/Tools.ocd/Ropeladder.ocd/LadderGrabber.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Tools.ocd/Ropeladder.ocd/LadderGrabber.ocd/DefCore.txt index add8ec057..29b4c9e15 100644 --- a/planet/Objects.ocd/Items.ocd/Tools.ocd/Ropeladder.ocd/LadderGrabber.ocd/DefCore.txt +++ b/planet/Objects.ocd/Items.ocd/Tools.ocd/Ropeladder.ocd/LadderGrabber.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Ropeladder_Grabber -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Picture=20,0,64,64 Width=30 diff --git a/planet/Objects.ocd/Items.ocd/Tools.ocd/Ropeladder.ocd/LadderSegment.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Tools.ocd/Ropeladder.ocd/LadderSegment.ocd/DefCore.txt index 573632662..da0946303 100644 --- a/planet/Objects.ocd/Items.ocd/Tools.ocd/Ropeladder.ocd/LadderSegment.ocd/DefCore.txt +++ b/planet/Objects.ocd/Items.ocd/Tools.ocd/Ropeladder.ocd/LadderSegment.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Ropeladder_Segment -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack Width=5 Height=8 diff --git a/planet/Objects.ocd/Items.ocd/Tools.ocd/Shovel.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Tools.ocd/Shovel.ocd/DefCore.txt index 485c0620d..83f1f9921 100644 --- a/planet/Objects.ocd/Items.ocd/Tools.ocd/Shovel.ocd/DefCore.txt +++ b/planet/Objects.ocd/Items.ocd/Tools.ocd/Shovel.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Shovel -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=8 Height=18 diff --git a/planet/Objects.ocd/Items.ocd/Tools.ocd/Sickle.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Tools.ocd/Sickle.ocd/DefCore.txt index 8a55b9630..b53838996 100644 --- a/planet/Objects.ocd/Items.ocd/Tools.ocd/Sickle.ocd/DefCore.txt +++ b/planet/Objects.ocd/Items.ocd/Tools.ocd/Sickle.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Sickle -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=10 Height=7 diff --git a/planet/Objects.ocd/Items.ocd/Tools.ocd/TeleGlove.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Tools.ocd/TeleGlove.ocd/DefCore.txt index 59af346e0..2b7a18ded 100644 --- a/planet/Objects.ocd/Items.ocd/Tools.ocd/TeleGlove.ocd/DefCore.txt +++ b/planet/Objects.ocd/Items.ocd/Tools.ocd/TeleGlove.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=TeleGlove -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=8 Height=8 diff --git a/planet/Objects.ocd/Items.ocd/Tools.ocd/WallKit.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Tools.ocd/WallKit.ocd/DefCore.txt index 6cb1cecd5..cf5f45ca3 100644 --- a/planet/Objects.ocd/Items.ocd/Tools.ocd/WallKit.ocd/DefCore.txt +++ b/planet/Objects.ocd/Items.ocd/Tools.ocd/WallKit.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=WallKit -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=12 Height=4 diff --git a/planet/Objects.ocd/Items.ocd/Tools.ocd/WallKit.ocd/Preview.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Tools.ocd/WallKit.ocd/Preview.ocd/DefCore.txt index bcbaf6356..d482720d4 100644 --- a/planet/Objects.ocd/Items.ocd/Tools.ocd/WallKit.ocd/Preview.ocd/DefCore.txt +++ b/planet/Objects.ocd/Items.ocd/Tools.ocd/WallKit.ocd/Preview.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=WallKit_Preview -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack Vertices=2 Line=1 diff --git a/planet/Objects.ocd/Items.ocd/Weapons.ocd/Bow.ocd/Arrow.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Weapons.ocd/Bow.ocd/Arrow.ocd/DefCore.txt index 224c4ab97..a6122d92d 100644 --- a/planet/Objects.ocd/Items.ocd/Weapons.ocd/Bow.ocd/Arrow.ocd/DefCore.txt +++ b/planet/Objects.ocd/Items.ocd/Weapons.ocd/Bow.ocd/Arrow.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Arrow -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=4 Height=15 diff --git a/planet/Objects.ocd/Items.ocd/Weapons.ocd/Bow.ocd/Arrow.ocd/HelpArrow.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Weapons.ocd/Bow.ocd/Arrow.ocd/HelpArrow.ocd/DefCore.txt index bad195077..59fbf72ae 100644 --- a/planet/Objects.ocd/Items.ocd/Weapons.ocd/Bow.ocd/Arrow.ocd/HelpArrow.ocd/DefCore.txt +++ b/planet/Objects.ocd/Items.ocd/Weapons.ocd/Bow.ocd/Arrow.ocd/HelpArrow.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=HelpArrow -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=4 Height=15 diff --git a/planet/Objects.ocd/Items.ocd/Weapons.ocd/Bow.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Weapons.ocd/Bow.ocd/DefCore.txt index 8b360e064..340e301f7 100644 --- a/planet/Objects.ocd/Items.ocd/Weapons.ocd/Bow.ocd/DefCore.txt +++ b/planet/Objects.ocd/Items.ocd/Weapons.ocd/Bow.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Bow -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=4 Height=20 diff --git a/planet/Objects.ocd/Items.ocd/Weapons.ocd/Club.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Weapons.ocd/Club.ocd/DefCore.txt index 425344d79..7a31685ff 100644 --- a/planet/Objects.ocd/Items.ocd/Weapons.ocd/Club.ocd/DefCore.txt +++ b/planet/Objects.ocd/Items.ocd/Weapons.ocd/Club.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Club -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=3 Height=16 diff --git a/planet/Objects.ocd/Items.ocd/Weapons.ocd/GrenadeLauncher.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Weapons.ocd/GrenadeLauncher.ocd/DefCore.txt index 6a85912da..36fcabeb1 100644 --- a/planet/Objects.ocd/Items.ocd/Weapons.ocd/GrenadeLauncher.ocd/DefCore.txt +++ b/planet/Objects.ocd/Items.ocd/Weapons.ocd/GrenadeLauncher.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=GrenadeLauncher -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=16 Height=6 diff --git a/planet/Objects.ocd/Items.ocd/Weapons.ocd/IronBomb.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Weapons.ocd/IronBomb.ocd/DefCore.txt index 232dcc5ab..acbc5c4ae 100644 --- a/planet/Objects.ocd/Items.ocd/Weapons.ocd/IronBomb.ocd/DefCore.txt +++ b/planet/Objects.ocd/Items.ocd/Weapons.ocd/IronBomb.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=IronBomb -Version=4,10,0,0 +Version=6,0 Category=C4D_Object Width=6 Height=6 diff --git a/planet/Objects.ocd/Items.ocd/Weapons.ocd/IronBomb.ocd/Shrapnel.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Weapons.ocd/IronBomb.ocd/Shrapnel.ocd/DefCore.txt index dbe039ee4..18d377a15 100644 --- a/planet/Objects.ocd/Items.ocd/Weapons.ocd/IronBomb.ocd/Shrapnel.ocd/DefCore.txt +++ b/planet/Objects.ocd/Items.ocd/Weapons.ocd/IronBomb.ocd/Shrapnel.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Shrapnel -Version=4,10,0,0 +Version=6,0 Category=C4D_Object Width=2 Height=2 diff --git a/planet/Objects.ocd/Items.ocd/Weapons.ocd/Javelin.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Weapons.ocd/Javelin.ocd/DefCore.txt index 19a78a65c..a60ec4f12 100644 --- a/planet/Objects.ocd/Items.ocd/Weapons.ocd/Javelin.ocd/DefCore.txt +++ b/planet/Objects.ocd/Items.ocd/Weapons.ocd/Javelin.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Javelin -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=4 Height=26 diff --git a/planet/Objects.ocd/Items.ocd/Weapons.ocd/Musket.ocd/Ammo.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Weapons.ocd/Musket.ocd/Ammo.ocd/DefCore.txt index 62ab9f4ea..a58ea146b 100644 --- a/planet/Objects.ocd/Items.ocd/Weapons.ocd/Musket.ocd/Ammo.ocd/DefCore.txt +++ b/planet/Objects.ocd/Items.ocd/Weapons.ocd/Musket.ocd/Ammo.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=LeadShot -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=8 Height=8 diff --git a/planet/Objects.ocd/Items.ocd/Weapons.ocd/Musket.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Weapons.ocd/Musket.ocd/DefCore.txt index 023157a5b..b1cc3aaeb 100644 --- a/planet/Objects.ocd/Items.ocd/Weapons.ocd/Musket.ocd/DefCore.txt +++ b/planet/Objects.ocd/Items.ocd/Weapons.ocd/Musket.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Musket -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=26 Height=5 diff --git a/planet/Objects.ocd/Items.ocd/Weapons.ocd/Shield.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Weapons.ocd/Shield.ocd/DefCore.txt index 93f4830af..e829c66a4 100644 --- a/planet/Objects.ocd/Items.ocd/Weapons.ocd/Shield.ocd/DefCore.txt +++ b/planet/Objects.ocd/Items.ocd/Weapons.ocd/Shield.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Shield -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=8 Height=11 diff --git a/planet/Objects.ocd/Items.ocd/Weapons.ocd/Shield.ocd/ShieldSolidMask.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Weapons.ocd/Shield.ocd/ShieldSolidMask.ocd/DefCore.txt index bf70c386b..f978ed4a0 100644 --- a/planet/Objects.ocd/Items.ocd/Weapons.ocd/Shield.ocd/ShieldSolidMask.ocd/DefCore.txt +++ b/planet/Objects.ocd/Items.ocd/Weapons.ocd/Shield.ocd/ShieldSolidMask.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Shield_SolidMask -Version=5,2,0,1 +Version=6,0 Category=C4D_Vehicle Width=8 Height=11 diff --git a/planet/Objects.ocd/Items.ocd/Weapons.ocd/Sword.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Weapons.ocd/Sword.ocd/DefCore.txt index ffec21760..cfe71b3f1 100644 --- a/planet/Objects.ocd/Items.ocd/Weapons.ocd/Sword.ocd/DefCore.txt +++ b/planet/Objects.ocd/Items.ocd/Weapons.ocd/Sword.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Sword -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=5 Height=16 diff --git a/planet/Objects.ocd/Items.ocd/Weapons.ocd/Sword.ocd/JumpEffect.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Weapons.ocd/Sword.ocd/JumpEffect.ocd/DefCore.txt index 1c34502ee..61572a3e0 100644 --- a/planet/Objects.ocd/Items.ocd/Weapons.ocd/Sword.ocd/JumpEffect.ocd/DefCore.txt +++ b/planet/Objects.ocd/Items.ocd/Weapons.ocd/Sword.ocd/JumpEffect.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Sword_JumpEffect -Version=4,10,0,0 +Version=6,0 Category=C4D_StaticBack Width=10 Height=10 diff --git a/planet/Objects.ocd/Libraries.ocd/AimManager.ocd/DefCore.txt b/planet/Objects.ocd/Libraries.ocd/AimManager.ocd/DefCore.txt index d06f39777..9d4c6cfb3 100644 --- a/planet/Objects.ocd/Libraries.ocd/AimManager.ocd/DefCore.txt +++ b/planet/Objects.ocd/Libraries.ocd/AimManager.ocd/DefCore.txt @@ -1,4 +1,4 @@ [DefCore] id=Library_AimManager -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack diff --git a/planet/Objects.ocd/Libraries.ocd/AlignVehicleRotation.ocd/DefCore.txt b/planet/Objects.ocd/Libraries.ocd/AlignVehicleRotation.ocd/DefCore.txt index db7dca5a3..08b4d94bf 100644 --- a/planet/Objects.ocd/Libraries.ocd/AlignVehicleRotation.ocd/DefCore.txt +++ b/planet/Objects.ocd/Libraries.ocd/AlignVehicleRotation.ocd/DefCore.txt @@ -1,4 +1,4 @@ [DefCore] id=Library_AlignVehicleRotation -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack diff --git a/planet/Objects.ocd/Libraries.ocd/AlignVehicleRotation.ocd/FloorHelper.ocd/DefCore.txt b/planet/Objects.ocd/Libraries.ocd/AlignVehicleRotation.ocd/FloorHelper.ocd/DefCore.txt index a4c0215bc..52a07f5a7 100644 --- a/planet/Objects.ocd/Libraries.ocd/AlignVehicleRotation.ocd/FloorHelper.ocd/DefCore.txt +++ b/planet/Objects.ocd/Libraries.ocd/AlignVehicleRotation.ocd/FloorHelper.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Vehicle_FloorHelper -Version=5,2,0,1 +Version=6,0 Category=C4D_Vehicle Width=6 Height=4 diff --git a/planet/Objects.ocd/Libraries.ocd/Animal.ocd/DefCore.txt b/planet/Objects.ocd/Libraries.ocd/Animal.ocd/DefCore.txt index 665db089d..ab0909668 100644 --- a/planet/Objects.ocd/Libraries.ocd/Animal.ocd/DefCore.txt +++ b/planet/Objects.ocd/Libraries.ocd/Animal.ocd/DefCore.txt @@ -1,5 +1,5 @@ [DefCore] id=Library_Animal -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack Picture=0,0,64,64 diff --git a/planet/Objects.ocd/Libraries.ocd/BarrelFiller.ocd/DefCore.txt b/planet/Objects.ocd/Libraries.ocd/BarrelFiller.ocd/DefCore.txt index 7ad968c7f..c0aa2ac8f 100644 --- a/planet/Objects.ocd/Libraries.ocd/BarrelFiller.ocd/DefCore.txt +++ b/planet/Objects.ocd/Libraries.ocd/BarrelFiller.ocd/DefCore.txt @@ -1,4 +1,4 @@ [DefCore] id=Libary_BarrelFiller -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack diff --git a/planet/Objects.ocd/Libraries.ocd/Bars.ocd/DefCore.txt b/planet/Objects.ocd/Libraries.ocd/Bars.ocd/DefCore.txt index 2ace1f763..8c84ebaa3 100644 --- a/planet/Objects.ocd/Libraries.ocd/Bars.ocd/DefCore.txt +++ b/planet/Objects.ocd/Libraries.ocd/Bars.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Library_Bars -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack Width=110 Height=19 diff --git a/planet/Objects.ocd/Libraries.ocd/Base.ocd/BaseMaterial.ocd/DefCore.txt b/planet/Objects.ocd/Libraries.ocd/Base.ocd/BaseMaterial.ocd/DefCore.txt index 28b75d76e..4110b8d2c 100644 --- a/planet/Objects.ocd/Libraries.ocd/Base.ocd/BaseMaterial.ocd/DefCore.txt +++ b/planet/Objects.ocd/Libraries.ocd/Base.ocd/BaseMaterial.ocd/DefCore.txt @@ -1,5 +1,5 @@ [DefCore] id=BaseMaterial -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack Picture=0,0,64,64 diff --git a/planet/Objects.ocd/Libraries.ocd/Base.ocd/DefCore.txt b/planet/Objects.ocd/Libraries.ocd/Base.ocd/DefCore.txt index b91b119b9..dec074e0b 100644 --- a/planet/Objects.ocd/Libraries.ocd/Base.ocd/DefCore.txt +++ b/planet/Objects.ocd/Libraries.ocd/Base.ocd/DefCore.txt @@ -1,5 +1,5 @@ [DefCore] id=Library_Base -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack Picture=0,0,64,64 diff --git a/planet/Objects.ocd/Libraries.ocd/CarryHeavy.ocd/DefCore.txt b/planet/Objects.ocd/Libraries.ocd/CarryHeavy.ocd/DefCore.txt index 9264851e2..a277cb32f 100644 --- a/planet/Objects.ocd/Libraries.ocd/CarryHeavy.ocd/DefCore.txt +++ b/planet/Objects.ocd/Libraries.ocd/CarryHeavy.ocd/DefCore.txt @@ -1,4 +1,4 @@ [DefCore] id=Library_CarryHeavy -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack diff --git a/planet/Objects.ocd/Libraries.ocd/ClonkControl.ocd/Crosshair.ocd/DefCore.txt b/planet/Objects.ocd/Libraries.ocd/ClonkControl.ocd/Crosshair.ocd/DefCore.txt index 85420b29c..80f286949 100644 --- a/planet/Objects.ocd/Libraries.ocd/ClonkControl.ocd/Crosshair.ocd/DefCore.txt +++ b/planet/Objects.ocd/Libraries.ocd/ClonkControl.ocd/Crosshair.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=GUI_Crosshair -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack | C4D_IgnoreFoW Width=35 Height=35 diff --git a/planet/Objects.ocd/Libraries.ocd/ClonkControl.ocd/DefCore.txt b/planet/Objects.ocd/Libraries.ocd/ClonkControl.ocd/DefCore.txt index b375a09dc..0058e26b6 100644 --- a/planet/Objects.ocd/Libraries.ocd/ClonkControl.ocd/DefCore.txt +++ b/planet/Objects.ocd/Libraries.ocd/ClonkControl.ocd/DefCore.txt @@ -1,5 +1,5 @@ [DefCore] id=Library_ClonkControl -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack Picture=0,0,64,64 diff --git a/planet/Objects.ocd/Libraries.ocd/Constructor.ocd/ConstructionMenu.ocd/DefCore.txt b/planet/Objects.ocd/Libraries.ocd/Constructor.ocd/ConstructionMenu.ocd/DefCore.txt index a78902403..4f8aaa87d 100644 --- a/planet/Objects.ocd/Libraries.ocd/Constructor.ocd/ConstructionMenu.ocd/DefCore.txt +++ b/planet/Objects.ocd/Libraries.ocd/Constructor.ocd/ConstructionMenu.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Library_ConstructionMenu -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack | C4D_IgnoreFoW | C4D_Foreground | C4D_Parallax | C4D_MouseSelect Width=640 Height=320 diff --git a/planet/Objects.ocd/Libraries.ocd/Constructor.ocd/ConstructionPreviewer.ocd/DefCore.txt b/planet/Objects.ocd/Libraries.ocd/Constructor.ocd/ConstructionPreviewer.ocd/DefCore.txt index f972c70e3..2e78b4825 100644 --- a/planet/Objects.ocd/Libraries.ocd/Constructor.ocd/ConstructionPreviewer.ocd/DefCore.txt +++ b/planet/Objects.ocd/Libraries.ocd/Constructor.ocd/ConstructionPreviewer.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=ConstructionPreviewer -Version=4,10,0,0 +Version=6,0 Category=C4D_StaticBack | C4D_IgnoreFoW Width=1 Height=1 diff --git a/planet/Objects.ocd/Libraries.ocd/Constructor.ocd/ConstructionPreviewer.ocd/IconCombine.ocd/DefCore.txt b/planet/Objects.ocd/Libraries.ocd/Constructor.ocd/ConstructionPreviewer.ocd/IconCombine.ocd/DefCore.txt index ac55c10e7..d403f983a 100644 --- a/planet/Objects.ocd/Libraries.ocd/Constructor.ocd/ConstructionPreviewer.ocd/IconCombine.ocd/DefCore.txt +++ b/planet/Objects.ocd/Libraries.ocd/Constructor.ocd/ConstructionPreviewer.ocd/IconCombine.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=ConstructionPreviewer_IconCombine -Version=4,10,0,0 +Version=6,0 Category=C4D_StaticBack | C4D_IgnoreFoW Width=23 Height=15 diff --git a/planet/Objects.ocd/Libraries.ocd/Constructor.ocd/ConstructionPreviewer.ocd/IconFlip.ocd/DefCore.txt b/planet/Objects.ocd/Libraries.ocd/Constructor.ocd/ConstructionPreviewer.ocd/IconFlip.ocd/DefCore.txt index 9e08f3253..cd1fe7c83 100644 --- a/planet/Objects.ocd/Libraries.ocd/Constructor.ocd/ConstructionPreviewer.ocd/IconFlip.ocd/DefCore.txt +++ b/planet/Objects.ocd/Libraries.ocd/Constructor.ocd/ConstructionPreviewer.ocd/IconFlip.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=ConstructionPreviewer_IconFlip -Version=4,10,0,0 +Version=6,0 Category=C4D_StaticBack | C4D_IgnoreFoW Width=24 Height=13 diff --git a/planet/Objects.ocd/Libraries.ocd/Constructor.ocd/ConstructionSite.ocd/DefCore.txt b/planet/Objects.ocd/Libraries.ocd/Constructor.ocd/ConstructionSite.ocd/DefCore.txt index 9b9295b90..585dd7c8f 100644 --- a/planet/Objects.ocd/Libraries.ocd/Constructor.ocd/ConstructionSite.ocd/DefCore.txt +++ b/planet/Objects.ocd/Libraries.ocd/Constructor.ocd/ConstructionSite.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=ConstructionSite -Version=5,3,3 +Version=6,0 Category=C4D_StaticBack Width=16 Height=16 diff --git a/planet/Objects.ocd/Libraries.ocd/Constructor.ocd/DefCore.txt b/planet/Objects.ocd/Libraries.ocd/Constructor.ocd/DefCore.txt index e1f75ecb8..d70da2645 100644 --- a/planet/Objects.ocd/Libraries.ocd/Constructor.ocd/DefCore.txt +++ b/planet/Objects.ocd/Libraries.ocd/Constructor.ocd/DefCore.txt @@ -1,4 +1,4 @@ [DefCore] id=Library_Constructor -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack diff --git a/planet/Objects.ocd/Libraries.ocd/DoorControl.ocd/DefCore.txt b/planet/Objects.ocd/Libraries.ocd/DoorControl.ocd/DefCore.txt index bb558bafc..227b7c911 100644 --- a/planet/Objects.ocd/Libraries.ocd/DoorControl.ocd/DefCore.txt +++ b/planet/Objects.ocd/Libraries.ocd/DoorControl.ocd/DefCore.txt @@ -1,4 +1,4 @@ [DefCore] id=Library_DoorControl -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack diff --git a/planet/Objects.ocd/Libraries.ocd/ElevatorControl.ocd/DefCore.txt b/planet/Objects.ocd/Libraries.ocd/ElevatorControl.ocd/DefCore.txt index e6fee4c7b..259c3891f 100644 --- a/planet/Objects.ocd/Libraries.ocd/ElevatorControl.ocd/DefCore.txt +++ b/planet/Objects.ocd/Libraries.ocd/ElevatorControl.ocd/DefCore.txt @@ -1,4 +1,4 @@ [DefCore] id=Library_ElevatorControl -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack diff --git a/planet/Objects.ocd/Libraries.ocd/Flag.ocd/ConstructionPreviewer.ocd/Arrow.ocd/DefCore.txt b/planet/Objects.ocd/Libraries.ocd/Flag.ocd/ConstructionPreviewer.ocd/Arrow.ocd/DefCore.txt index 01e5ad5c5..bf207c442 100644 --- a/planet/Objects.ocd/Libraries.ocd/Flag.ocd/ConstructionPreviewer.ocd/Arrow.ocd/DefCore.txt +++ b/planet/Objects.ocd/Libraries.ocd/Flag.ocd/ConstructionPreviewer.ocd/Arrow.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Library_Flag_ConstructionPreviewer_Arrow -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack Width=16 Height=36 diff --git a/planet/Objects.ocd/Libraries.ocd/Flag.ocd/ConstructionPreviewer.ocd/DefCore.txt b/planet/Objects.ocd/Libraries.ocd/Flag.ocd/ConstructionPreviewer.ocd/DefCore.txt index 2bd6324b9..2f2b52ae0 100644 --- a/planet/Objects.ocd/Libraries.ocd/Flag.ocd/ConstructionPreviewer.ocd/DefCore.txt +++ b/planet/Objects.ocd/Libraries.ocd/Flag.ocd/ConstructionPreviewer.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Library_Flag_ConstructionPreviewer -Version=4,10,0,0 +Version=6,0 Category=C4D_StaticBack | C4D_IgnoreFoW Width=1 Height=1 diff --git a/planet/Objects.ocd/Libraries.ocd/Flag.ocd/DefCore.txt b/planet/Objects.ocd/Libraries.ocd/Flag.ocd/DefCore.txt index b42793a1e..64437fbb9 100644 --- a/planet/Objects.ocd/Libraries.ocd/Flag.ocd/DefCore.txt +++ b/planet/Objects.ocd/Libraries.ocd/Flag.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Library_Flag -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=8 Height=8 diff --git a/planet/Objects.ocd/Libraries.ocd/Flag.ocd/Marker.ocd/DefCore.txt b/planet/Objects.ocd/Libraries.ocd/Flag.ocd/Marker.ocd/DefCore.txt index 4ad6bac76..9899a0f8e 100644 --- a/planet/Objects.ocd/Libraries.ocd/Flag.ocd/Marker.ocd/DefCore.txt +++ b/planet/Objects.ocd/Libraries.ocd/Flag.ocd/Marker.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=LibraryFlag_Marker -Version=5,2,0,1 +Version=6,0 Category=C4D_Vehicle Width=8 Height=8 diff --git a/planet/Objects.ocd/Libraries.ocd/FuzzyLogic.ocd/DefCore.txt b/planet/Objects.ocd/Libraries.ocd/FuzzyLogic.ocd/DefCore.txt index 5d0cda025..a8eeb4b84 100644 --- a/planet/Objects.ocd/Libraries.ocd/FuzzyLogic.ocd/DefCore.txt +++ b/planet/Objects.ocd/Libraries.ocd/FuzzyLogic.ocd/DefCore.txt @@ -1,4 +1,4 @@ [DefCore] id=Library_FuzzyLogic -Version=4,10,0,0 +Version=6,0 Category=C4D_StaticBack diff --git a/planet/Objects.ocd/Libraries.ocd/Goal.ocd/DefCore.txt b/planet/Objects.ocd/Libraries.ocd/Goal.ocd/DefCore.txt index ab50e2d89..794397258 100644 --- a/planet/Objects.ocd/Libraries.ocd/Goal.ocd/DefCore.txt +++ b/planet/Objects.ocd/Libraries.ocd/Goal.ocd/DefCore.txt @@ -1,4 +1,4 @@ [DefCore] id=Library_Goal -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack diff --git a/planet/Objects.ocd/Libraries.ocd/GoldSeller.ocd/DefCore.txt b/planet/Objects.ocd/Libraries.ocd/GoldSeller.ocd/DefCore.txt index 032e978c0..5fda6abdf 100644 --- a/planet/Objects.ocd/Libraries.ocd/GoldSeller.ocd/DefCore.txt +++ b/planet/Objects.ocd/Libraries.ocd/GoldSeller.ocd/DefCore.txt @@ -1,4 +1,4 @@ [DefCore] id=Library_GoldSeller -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack diff --git a/planet/Objects.ocd/Libraries.ocd/HUDAdapter.ocd/DefCore.txt b/planet/Objects.ocd/Libraries.ocd/HUDAdapter.ocd/DefCore.txt index 05b46301c..cb3461248 100644 --- a/planet/Objects.ocd/Libraries.ocd/HUDAdapter.ocd/DefCore.txt +++ b/planet/Objects.ocd/Libraries.ocd/HUDAdapter.ocd/DefCore.txt @@ -1,4 +1,4 @@ [DefCore] id=Library_HUDAdapter -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack diff --git a/planet/Objects.ocd/Libraries.ocd/HasExtraSlot.ocd/DefCore.txt b/planet/Objects.ocd/Libraries.ocd/HasExtraSlot.ocd/DefCore.txt index b820b7449..9ddf2e4eb 100644 --- a/planet/Objects.ocd/Libraries.ocd/HasExtraSlot.ocd/DefCore.txt +++ b/planet/Objects.ocd/Libraries.ocd/HasExtraSlot.ocd/DefCore.txt @@ -1,4 +1,4 @@ [DefCore] id=Library_HasExtraSlot -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack diff --git a/planet/Objects.ocd/Libraries.ocd/LadderClimb.ocd/DefCore.txt b/planet/Objects.ocd/Libraries.ocd/LadderClimb.ocd/DefCore.txt index 09473ff37..80b824017 100644 --- a/planet/Objects.ocd/Libraries.ocd/LadderClimb.ocd/DefCore.txt +++ b/planet/Objects.ocd/Libraries.ocd/LadderClimb.ocd/DefCore.txt @@ -1,4 +1,4 @@ [DefCore] id=Library_CanClimbLadder -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack diff --git a/planet/Objects.ocd/Libraries.ocd/LadderControl.ocd/DefCore.txt b/planet/Objects.ocd/Libraries.ocd/LadderControl.ocd/DefCore.txt index 7abd079d4..f8562a422 100644 --- a/planet/Objects.ocd/Libraries.ocd/LadderControl.ocd/DefCore.txt +++ b/planet/Objects.ocd/Libraries.ocd/LadderControl.ocd/DefCore.txt @@ -1,4 +1,4 @@ [DefCore] id=Library_Ladder -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack diff --git a/planet/Objects.ocd/Libraries.ocd/Map.ocd/DefCore.txt b/planet/Objects.ocd/Libraries.ocd/Map.ocd/DefCore.txt index 41c30e340..63cf45c04 100644 --- a/planet/Objects.ocd/Libraries.ocd/Map.ocd/DefCore.txt +++ b/planet/Objects.ocd/Libraries.ocd/Map.ocd/DefCore.txt @@ -1,4 +1,4 @@ [DefCore] id=Library_Map -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack diff --git a/planet/Objects.ocd/Libraries.ocd/MeleeWeapons.ocd/DefCore.txt b/planet/Objects.ocd/Libraries.ocd/MeleeWeapons.ocd/DefCore.txt index b1e1ff717..8b6302f40 100644 --- a/planet/Objects.ocd/Libraries.ocd/MeleeWeapons.ocd/DefCore.txt +++ b/planet/Objects.ocd/Libraries.ocd/MeleeWeapons.ocd/DefCore.txt @@ -1,4 +1,4 @@ [DefCore] id=Library_MeleeWeapon -Version=5,2,0,1 +Version=6,0 Category=1 diff --git a/planet/Objects.ocd/Libraries.ocd/Ownable.ocd/DefCore.txt b/planet/Objects.ocd/Libraries.ocd/Ownable.ocd/DefCore.txt index a9bb4d273..01c11fd92 100644 --- a/planet/Objects.ocd/Libraries.ocd/Ownable.ocd/DefCore.txt +++ b/planet/Objects.ocd/Libraries.ocd/Ownable.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Library_Ownable -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=8 Height=8 diff --git a/planet/Objects.ocd/Libraries.ocd/Plants.ocd/Crop.ocd/DefCore.txt b/planet/Objects.ocd/Libraries.ocd/Plants.ocd/Crop.ocd/DefCore.txt index e25f5a230..57bff92b2 100644 --- a/planet/Objects.ocd/Libraries.ocd/Plants.ocd/Crop.ocd/DefCore.txt +++ b/planet/Objects.ocd/Libraries.ocd/Plants.ocd/Crop.ocd/DefCore.txt @@ -1,4 +1,4 @@ [DefCore] id=Library_Crop -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack diff --git a/planet/Objects.ocd/Libraries.ocd/Plants.ocd/Plant.ocd/DefCore.txt b/planet/Objects.ocd/Libraries.ocd/Plants.ocd/Plant.ocd/DefCore.txt index 297062fc8..d63818b9f 100644 --- a/planet/Objects.ocd/Libraries.ocd/Plants.ocd/Plant.ocd/DefCore.txt +++ b/planet/Objects.ocd/Libraries.ocd/Plants.ocd/Plant.ocd/DefCore.txt @@ -1,4 +1,4 @@ [DefCore] id=Library_Plant -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack diff --git a/planet/Objects.ocd/Libraries.ocd/Plants.ocd/Tree.ocd/DefCore.txt b/planet/Objects.ocd/Libraries.ocd/Plants.ocd/Tree.ocd/DefCore.txt index 8cc61004f..b84c82a6a 100644 --- a/planet/Objects.ocd/Libraries.ocd/Plants.ocd/Tree.ocd/DefCore.txt +++ b/planet/Objects.ocd/Libraries.ocd/Plants.ocd/Tree.ocd/DefCore.txt @@ -1,4 +1,4 @@ [DefCore] id=Library_Tree -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack diff --git a/planet/Objects.ocd/Libraries.ocd/Power.ocd/DefCore.txt b/planet/Objects.ocd/Libraries.ocd/Power.ocd/DefCore.txt index cbce74f68..e99ac61ab 100644 --- a/planet/Objects.ocd/Libraries.ocd/Power.ocd/DefCore.txt +++ b/planet/Objects.ocd/Libraries.ocd/Power.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Library_Power -Version=4,10,0,0 +Version=6,0 Category=C4D_StaticBack Width=1 Height=1 diff --git a/planet/Objects.ocd/Libraries.ocd/PowerConsumer.ocd/DefCore.txt b/planet/Objects.ocd/Libraries.ocd/PowerConsumer.ocd/DefCore.txt index a978446ee..bb6a6ab0f 100644 --- a/planet/Objects.ocd/Libraries.ocd/PowerConsumer.ocd/DefCore.txt +++ b/planet/Objects.ocd/Libraries.ocd/PowerConsumer.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Library_PowerConsumer -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack Width=13 Height=19 diff --git a/planet/Objects.ocd/Libraries.ocd/PowerProducer.ocd/DefCore.txt b/planet/Objects.ocd/Libraries.ocd/PowerProducer.ocd/DefCore.txt index 34072100e..1c6845726 100644 --- a/planet/Objects.ocd/Libraries.ocd/PowerProducer.ocd/DefCore.txt +++ b/planet/Objects.ocd/Libraries.ocd/PowerProducer.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Library_PowerProducer -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack Width=13 Height=19 diff --git a/planet/Objects.ocd/Libraries.ocd/Producer.ocd/DefCore.txt b/planet/Objects.ocd/Libraries.ocd/Producer.ocd/DefCore.txt index 046f43923..11da44071 100644 --- a/planet/Objects.ocd/Libraries.ocd/Producer.ocd/DefCore.txt +++ b/planet/Objects.ocd/Libraries.ocd/Producer.ocd/DefCore.txt @@ -1,4 +1,4 @@ [DefCore] id=Library_Producer -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack diff --git a/planet/Objects.ocd/Libraries.ocd/Producer.ocd/Icons.ocd/Acid.ocd/DefCore.txt b/planet/Objects.ocd/Libraries.ocd/Producer.ocd/Icons.ocd/Acid.ocd/DefCore.txt index 29e6387cf..e2121b103 100644 --- a/planet/Objects.ocd/Libraries.ocd/Producer.ocd/Icons.ocd/Acid.ocd/DefCore.txt +++ b/planet/Objects.ocd/Libraries.ocd/Producer.ocd/Icons.ocd/Acid.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Icon_Producer_Acid -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack Picture=0,0,128,128 Width=64 diff --git a/planet/Objects.ocd/Libraries.ocd/Producer.ocd/Icons.ocd/Fuel.ocd/DefCore.txt b/planet/Objects.ocd/Libraries.ocd/Producer.ocd/Icons.ocd/Fuel.ocd/DefCore.txt index baf8e7e1b..5917054ad 100644 --- a/planet/Objects.ocd/Libraries.ocd/Producer.ocd/Icons.ocd/Fuel.ocd/DefCore.txt +++ b/planet/Objects.ocd/Libraries.ocd/Producer.ocd/Icons.ocd/Fuel.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Icon_Producer_Fuel -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack Picture=0,0,128,128 Width=64 diff --git a/planet/Objects.ocd/Libraries.ocd/Producer.ocd/Icons.ocd/Lava.ocd/DefCore.txt b/planet/Objects.ocd/Libraries.ocd/Producer.ocd/Icons.ocd/Lava.ocd/DefCore.txt index 6a332e978..7b9f5ac64 100644 --- a/planet/Objects.ocd/Libraries.ocd/Producer.ocd/Icons.ocd/Lava.ocd/DefCore.txt +++ b/planet/Objects.ocd/Libraries.ocd/Producer.ocd/Icons.ocd/Lava.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Icon_Producer_Lava -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack Picture=0,0,128,128 Width=64 diff --git a/planet/Objects.ocd/Libraries.ocd/Producer.ocd/Icons.ocd/Oil.ocd/DefCore.txt b/planet/Objects.ocd/Libraries.ocd/Producer.ocd/Icons.ocd/Oil.ocd/DefCore.txt index 566d23818..1d8a9b72a 100644 --- a/planet/Objects.ocd/Libraries.ocd/Producer.ocd/Icons.ocd/Oil.ocd/DefCore.txt +++ b/planet/Objects.ocd/Libraries.ocd/Producer.ocd/Icons.ocd/Oil.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Icon_Producer_Oil -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack Picture=0,0,128,128 Width=64 diff --git a/planet/Objects.ocd/Libraries.ocd/Producer.ocd/Icons.ocd/Water.ocd/DefCore.txt b/planet/Objects.ocd/Libraries.ocd/Producer.ocd/Icons.ocd/Water.ocd/DefCore.txt index 33389158b..41fd7d493 100644 --- a/planet/Objects.ocd/Libraries.ocd/Producer.ocd/Icons.ocd/Water.ocd/DefCore.txt +++ b/planet/Objects.ocd/Libraries.ocd/Producer.ocd/Icons.ocd/Water.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Icon_Producer_Water -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack Picture=0,0,128,128 Width=64 diff --git a/planet/Objects.ocd/Libraries.ocd/Producer.ocd/ProductionMenu.ocd/DefCore.txt b/planet/Objects.ocd/Libraries.ocd/Producer.ocd/ProductionMenu.ocd/DefCore.txt index ad2b6245e..79a29fe75 100644 --- a/planet/Objects.ocd/Libraries.ocd/Producer.ocd/ProductionMenu.ocd/DefCore.txt +++ b/planet/Objects.ocd/Libraries.ocd/Producer.ocd/ProductionMenu.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Library_ProductionMenu -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack | C4D_IgnoreFoW | C4D_Foreground | C4D_Parallax | C4D_MouseSelect Width=640 Height=320 diff --git a/planet/Objects.ocd/Libraries.ocd/RopePhysics.ocd/DefCore.txt b/planet/Objects.ocd/Libraries.ocd/RopePhysics.ocd/DefCore.txt index 84f0291e3..c181c72ea 100644 --- a/planet/Objects.ocd/Libraries.ocd/RopePhysics.ocd/DefCore.txt +++ b/planet/Objects.ocd/Libraries.ocd/RopePhysics.ocd/DefCore.txt @@ -1,4 +1,4 @@ [DefCore] id=Library_Rope -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack diff --git a/planet/Objects.ocd/Libraries.ocd/Scoreboard.ocd/Death.ocd/DefCore.txt b/planet/Objects.ocd/Libraries.ocd/Scoreboard.ocd/Death.ocd/DefCore.txt index 6cab0c1a3..cfa0f1b5e 100644 --- a/planet/Objects.ocd/Libraries.ocd/Scoreboard.ocd/Death.ocd/DefCore.txt +++ b/planet/Objects.ocd/Libraries.ocd/Scoreboard.ocd/Death.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Scoreboard_Death -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack|C4D_Rule Picture=0,0,32,32 Width=32 diff --git a/planet/Objects.ocd/Libraries.ocd/Scoreboard.ocd/Kill.ocd/DefCore.txt b/planet/Objects.ocd/Libraries.ocd/Scoreboard.ocd/Kill.ocd/DefCore.txt index 956d1ab73..62a09e1a3 100644 --- a/planet/Objects.ocd/Libraries.ocd/Scoreboard.ocd/Kill.ocd/DefCore.txt +++ b/planet/Objects.ocd/Libraries.ocd/Scoreboard.ocd/Kill.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Scoreboard_Kill -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack|C4D_Rule Picture=0,0,32,32 Width=32 diff --git a/planet/Objects.ocd/Libraries.ocd/Scoreboard.ocd/KillStreak.ocd/DefCore.txt b/planet/Objects.ocd/Libraries.ocd/Scoreboard.ocd/KillStreak.ocd/DefCore.txt index 7cae8997c..acff34102 100644 --- a/planet/Objects.ocd/Libraries.ocd/Scoreboard.ocd/KillStreak.ocd/DefCore.txt +++ b/planet/Objects.ocd/Libraries.ocd/Scoreboard.ocd/KillStreak.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Scoreboard_KillStreak -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack|C4D_Rule Picture=0,0,32,32 Width=32 diff --git a/planet/Objects.ocd/Libraries.ocd/Scoreboard.ocd/Relaunch.ocd/DefCore.txt b/planet/Objects.ocd/Libraries.ocd/Scoreboard.ocd/Relaunch.ocd/DefCore.txt index 99c6ed7a7..cb2241b82 100644 --- a/planet/Objects.ocd/Libraries.ocd/Scoreboard.ocd/Relaunch.ocd/DefCore.txt +++ b/planet/Objects.ocd/Libraries.ocd/Scoreboard.ocd/Relaunch.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Scoreboard_Relaunch -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack|C4D_Rule Picture=0,0,32,32 Width=32 diff --git a/planet/Objects.ocd/Libraries.ocd/Stackable.ocd/DefCore.txt b/planet/Objects.ocd/Libraries.ocd/Stackable.ocd/DefCore.txt index 557db5c91..1f924cee8 100644 --- a/planet/Objects.ocd/Libraries.ocd/Stackable.ocd/DefCore.txt +++ b/planet/Objects.ocd/Libraries.ocd/Stackable.ocd/DefCore.txt @@ -1,4 +1,4 @@ [DefCore] id=Library_Stackable -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack diff --git a/planet/Objects.ocd/Libraries.ocd/Structure.ocd/DefCore.txt b/planet/Objects.ocd/Libraries.ocd/Structure.ocd/DefCore.txt index 298ed3eab..927e590c8 100644 --- a/planet/Objects.ocd/Libraries.ocd/Structure.ocd/DefCore.txt +++ b/planet/Objects.ocd/Libraries.ocd/Structure.ocd/DefCore.txt @@ -1,4 +1,4 @@ [DefCore] id=Library_Structure -Version=5,2,2,0 +Version=6,0 Category=C4D_StaticBack \ No newline at end of file diff --git a/planet/Objects.ocd/Libraries.ocd/Tank.ocd/DefCore.txt b/planet/Objects.ocd/Libraries.ocd/Tank.ocd/DefCore.txt index 928874556..84ed5d566 100644 --- a/planet/Objects.ocd/Libraries.ocd/Tank.ocd/DefCore.txt +++ b/planet/Objects.ocd/Libraries.ocd/Tank.ocd/DefCore.txt @@ -1,4 +1,4 @@ [DefCore] id=Libary_Tank -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack diff --git a/planet/Objects.ocd/Rules.ocd/BaseRespawn.ocd/DefCore.txt b/planet/Objects.ocd/Rules.ocd/BaseRespawn.ocd/DefCore.txt index 29128fee5..9965e8e1f 100644 --- a/planet/Objects.ocd/Rules.ocd/BaseRespawn.ocd/DefCore.txt +++ b/planet/Objects.ocd/Rules.ocd/BaseRespawn.ocd/DefCore.txt @@ -1,5 +1,5 @@ [DefCore] id=Rule_BaseRespawn -Version=5,4,0,0 +Version=6,0 Category=C4D_StaticBack | C4D_Rule Picture=0,0,128,128 diff --git a/planet/Objects.ocd/Rules.ocd/BuyAtFlagpole.ocd/DefCore.txt b/planet/Objects.ocd/Rules.ocd/BuyAtFlagpole.ocd/DefCore.txt index 7a1797aff..a1d387cc0 100644 --- a/planet/Objects.ocd/Rules.ocd/BuyAtFlagpole.ocd/DefCore.txt +++ b/planet/Objects.ocd/Rules.ocd/BuyAtFlagpole.ocd/DefCore.txt @@ -1,5 +1,5 @@ [DefCore] id=Rule_BuyAtFlagpole -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack|C4D_Rule Picture=0,0,64,64 diff --git a/planet/Objects.ocd/Rules.ocd/EnergyBarsAboveStructures.ocd/DefCore.txt b/planet/Objects.ocd/Rules.ocd/EnergyBarsAboveStructures.ocd/DefCore.txt index 513b8a780..c6e810e7b 100644 --- a/planet/Objects.ocd/Rules.ocd/EnergyBarsAboveStructures.ocd/DefCore.txt +++ b/planet/Objects.ocd/Rules.ocd/EnergyBarsAboveStructures.ocd/DefCore.txt @@ -1,5 +1,5 @@ [DefCore] id=Rule_StructureHPBars -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack|C4D_Rule Picture=0,0,64,64 diff --git a/planet/Objects.ocd/Rules.ocd/Gravestones.ocd/DefCore.txt b/planet/Objects.ocd/Rules.ocd/Gravestones.ocd/DefCore.txt index a70af0c66..f702ea6ae 100644 --- a/planet/Objects.ocd/Rules.ocd/Gravestones.ocd/DefCore.txt +++ b/planet/Objects.ocd/Rules.ocd/Gravestones.ocd/DefCore.txt @@ -1,5 +1,5 @@ [DefCore] id=Rule_Gravestones -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack|C4D_Rule Picture=0,0,64,64 diff --git a/planet/Objects.ocd/Rules.ocd/Gravestones.ocd/Gravestone.ocd/DefCore.txt b/planet/Objects.ocd/Rules.ocd/Gravestones.ocd/Gravestone.ocd/DefCore.txt index d26a1954e..9f90e1b51 100644 --- a/planet/Objects.ocd/Rules.ocd/Gravestones.ocd/Gravestone.ocd/DefCore.txt +++ b/planet/Objects.ocd/Rules.ocd/Gravestones.ocd/Gravestone.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Clonk_Grave -Version=5,4,0,0 +Version=6,0 Category=C4D_Vehicle Width=8 Height=12 diff --git a/planet/Objects.ocd/Rules.ocd/Killlogs.ocd/DefCore.txt b/planet/Objects.ocd/Rules.ocd/Killlogs.ocd/DefCore.txt index 52a3de8db..402944582 100644 --- a/planet/Objects.ocd/Rules.ocd/Killlogs.ocd/DefCore.txt +++ b/planet/Objects.ocd/Rules.ocd/Killlogs.ocd/DefCore.txt @@ -1,5 +1,5 @@ [DefCore] id=Rule_KillLogs -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack|C4D_Rule Picture=0,0,64,64 diff --git a/planet/Objects.ocd/Rules.ocd/NoEnergy.ocd/DefCore.txt b/planet/Objects.ocd/Rules.ocd/NoEnergy.ocd/DefCore.txt index 4af1fbbe4..15e3da49b 100644 --- a/planet/Objects.ocd/Rules.ocd/NoEnergy.ocd/DefCore.txt +++ b/planet/Objects.ocd/Rules.ocd/NoEnergy.ocd/DefCore.txt @@ -1,5 +1,5 @@ [DefCore] id=Rule_NoPowerNeed -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack|C4D_Rule Picture=0,0,64,64 diff --git a/planet/Objects.ocd/Rules.ocd/ObjectFade.ocd/DefCore.txt b/planet/Objects.ocd/Rules.ocd/ObjectFade.ocd/DefCore.txt index 04929cc2f..956176605 100644 --- a/planet/Objects.ocd/Rules.ocd/ObjectFade.ocd/DefCore.txt +++ b/planet/Objects.ocd/Rules.ocd/ObjectFade.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Rule_ObjectFade -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack|C4D_Rule Width=1 Height=1 diff --git a/planet/Objects.ocd/Rules.ocd/Restart.ocd/DefCore.txt b/planet/Objects.ocd/Rules.ocd/Restart.ocd/DefCore.txt index d347108eb..b0418ffe1 100644 --- a/planet/Objects.ocd/Rules.ocd/Restart.ocd/DefCore.txt +++ b/planet/Objects.ocd/Rules.ocd/Restart.ocd/DefCore.txt @@ -1,5 +1,5 @@ [DefCore] id=Rule_Restart -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack|C4D_Rule Picture=0,0,64,64 diff --git a/planet/Objects.ocd/Rules.ocd/TeamAccount.ocd/DefCore.txt b/planet/Objects.ocd/Rules.ocd/TeamAccount.ocd/DefCore.txt index c01aa6625..4ee6d74a1 100644 --- a/planet/Objects.ocd/Rules.ocd/TeamAccount.ocd/DefCore.txt +++ b/planet/Objects.ocd/Rules.ocd/TeamAccount.ocd/DefCore.txt @@ -1,5 +1,5 @@ [DefCore] id=Rule_TeamAccount -Version=4,10,0,0 +Version=6,0 Category=C4D_StaticBack|C4D_Rule Picture=0,0,64,64 diff --git a/planet/Objects.ocd/Structures.ocd/Armory.ocd/DefCore.txt b/planet/Objects.ocd/Structures.ocd/Armory.ocd/DefCore.txt index d71bfffa2..382353646 100644 --- a/planet/Objects.ocd/Structures.ocd/Armory.ocd/DefCore.txt +++ b/planet/Objects.ocd/Structures.ocd/Armory.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Armory -Version=5,2,90,21 +Version=6,0 Category=C4D_Structure Width=95 Height=52 diff --git a/planet/Objects.ocd/Structures.ocd/Basement.ocd/DefCore.txt b/planet/Objects.ocd/Structures.ocd/Basement.ocd/DefCore.txt index 1d55735f0..7ca50be0d 100644 --- a/planet/Objects.ocd/Structures.ocd/Basement.ocd/DefCore.txt +++ b/planet/Objects.ocd/Structures.ocd/Basement.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Basement -Version=5,4,0,0 +Version=6,0 Category=C4D_Structure Width=40 Height=8 diff --git a/planet/Objects.ocd/Structures.ocd/ChemicalLab.ocd/DefCore.txt b/planet/Objects.ocd/Structures.ocd/ChemicalLab.ocd/DefCore.txt index 687d8ff8a..2f017b2b8 100644 --- a/planet/Objects.ocd/Structures.ocd/ChemicalLab.ocd/DefCore.txt +++ b/planet/Objects.ocd/Structures.ocd/ChemicalLab.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=ChemicalLab -Version=5,2,90,21 +Version=6,0 Category=C4D_Structure Width=50 Height=52 diff --git a/planet/Objects.ocd/Structures.ocd/Chest.ocd/DefCore.txt b/planet/Objects.ocd/Structures.ocd/Chest.ocd/DefCore.txt index 759993c7e..a3a660bbe 100644 --- a/planet/Objects.ocd/Structures.ocd/Chest.ocd/DefCore.txt +++ b/planet/Objects.ocd/Structures.ocd/Chest.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Chest -Version=5,2,0,1 +Version=6,0 Category=C4D_Structure Width=20 Height=24 diff --git a/planet/Objects.ocd/Structures.ocd/Compensator.ocd/BurningBattery.ocd/DefCore.txt b/planet/Objects.ocd/Structures.ocd/Compensator.ocd/BurningBattery.ocd/DefCore.txt index 886e6d619..50d937275 100644 --- a/planet/Objects.ocd/Structures.ocd/Compensator.ocd/BurningBattery.ocd/DefCore.txt +++ b/planet/Objects.ocd/Structures.ocd/Compensator.ocd/BurningBattery.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Compensator_BurningBattery -Version=4,10,0,0 +Version=6,0 Category=C4D_Object Width=10 Height=10 diff --git a/planet/Objects.ocd/Structures.ocd/Compensator.ocd/ChargeShower.ocd/DefCore.txt b/planet/Objects.ocd/Structures.ocd/Compensator.ocd/ChargeShower.ocd/DefCore.txt index ae5487405..19bc03ec4 100644 --- a/planet/Objects.ocd/Structures.ocd/Compensator.ocd/ChargeShower.ocd/DefCore.txt +++ b/planet/Objects.ocd/Structures.ocd/Compensator.ocd/ChargeShower.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Compensator_ChargeShower -Version=4,10,0,0 +Version=6,0 Category=C4D_StaticBack Width=11 Height=19 diff --git a/planet/Objects.ocd/Structures.ocd/Compensator.ocd/DefCore.txt b/planet/Objects.ocd/Structures.ocd/Compensator.ocd/DefCore.txt index 3ad447743..4a891d1c4 100644 --- a/planet/Objects.ocd/Structures.ocd/Compensator.ocd/DefCore.txt +++ b/planet/Objects.ocd/Structures.ocd/Compensator.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Compensator -Version=5,2,0,1 +Version=6,0 Category=C4D_Structure Width=30 Height=20 diff --git a/planet/Objects.ocd/Structures.ocd/Elevator.ocd/Case.ocd/CaseBack.ocd/DefCore.txt b/planet/Objects.ocd/Structures.ocd/Elevator.ocd/Case.ocd/CaseBack.ocd/DefCore.txt index 08dc3c921..2b17aaee6 100644 --- a/planet/Objects.ocd/Structures.ocd/Elevator.ocd/Case.ocd/CaseBack.ocd/DefCore.txt +++ b/planet/Objects.ocd/Structures.ocd/Elevator.ocd/Case.ocd/CaseBack.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Elevator_Case_Back -Version=5,2,0,1 +Version=6,0 Width=24 Height=45 Offset=-12,-26 diff --git a/planet/Objects.ocd/Structures.ocd/Elevator.ocd/Case.ocd/CaseFront.ocd/DefCore.txt b/planet/Objects.ocd/Structures.ocd/Elevator.ocd/Case.ocd/CaseFront.ocd/DefCore.txt index 6af347aaa..bc7ca52d5 100644 --- a/planet/Objects.ocd/Structures.ocd/Elevator.ocd/Case.ocd/CaseFront.ocd/DefCore.txt +++ b/planet/Objects.ocd/Structures.ocd/Elevator.ocd/Case.ocd/CaseFront.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Elevator_Case_Front -Version=5,2,0,1 +Version=6,0 Width=24 Height=34 Offset=-12,-17 diff --git a/planet/Objects.ocd/Structures.ocd/Elevator.ocd/Case.ocd/DefCore.txt b/planet/Objects.ocd/Structures.ocd/Elevator.ocd/Case.ocd/DefCore.txt index 65736b258..d994e874c 100644 --- a/planet/Objects.ocd/Structures.ocd/Elevator.ocd/Case.ocd/DefCore.txt +++ b/planet/Objects.ocd/Structures.ocd/Elevator.ocd/Case.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=ElevatorCase -Version=5,2,0,1 +Version=6,0 Category=C4D_Vehicle Width=24 Height=26 diff --git a/planet/Objects.ocd/Structures.ocd/Elevator.ocd/DefCore.txt b/planet/Objects.ocd/Structures.ocd/Elevator.ocd/DefCore.txt index c640e1c5d..b5fef2515 100644 --- a/planet/Objects.ocd/Structures.ocd/Elevator.ocd/DefCore.txt +++ b/planet/Objects.ocd/Structures.ocd/Elevator.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Elevator -Version=5,2,0,1 +Version=6,0 Category=C4D_Structure Width=62 Height=66 diff --git a/planet/Objects.ocd/Structures.ocd/Elevator.ocd/Rope.ocd/DefCore.txt b/planet/Objects.ocd/Structures.ocd/Elevator.ocd/Rope.ocd/DefCore.txt index 2e2449b4a..42ec5769d 100644 --- a/planet/Objects.ocd/Structures.ocd/Elevator.ocd/Rope.ocd/DefCore.txt +++ b/planet/Objects.ocd/Structures.ocd/Elevator.ocd/Rope.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=ElevatorRope -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack Width=1 Height=4 diff --git a/planet/Objects.ocd/Structures.ocd/Flagpole.ocd/DefCore.txt b/planet/Objects.ocd/Structures.ocd/Flagpole.ocd/DefCore.txt index 03efc27e3..9fcee37cb 100644 --- a/planet/Objects.ocd/Structures.ocd/Flagpole.ocd/DefCore.txt +++ b/planet/Objects.ocd/Structures.ocd/Flagpole.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Flagpole -Version=5,2,0,1 +Version=6,0 Category=C4D_Structure Width=24 Height=70 diff --git a/planet/Objects.ocd/Structures.ocd/Foundry.ocd/DefCore.txt b/planet/Objects.ocd/Structures.ocd/Foundry.ocd/DefCore.txt index 97c7cfe8b..1cf62bd02 100644 --- a/planet/Objects.ocd/Structures.ocd/Foundry.ocd/DefCore.txt +++ b/planet/Objects.ocd/Structures.ocd/Foundry.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Foundry -Version=5,2,0,1 +Version=6,0 Category=C4D_Structure Width=50 Height=52 diff --git a/planet/Objects.ocd/Structures.ocd/Idol.ocd/DefCore.txt b/planet/Objects.ocd/Structures.ocd/Idol.ocd/DefCore.txt index 5ec580953..63a95c3c5 100644 --- a/planet/Objects.ocd/Structures.ocd/Idol.ocd/DefCore.txt +++ b/planet/Objects.ocd/Structures.ocd/Idol.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Idol -Version=5,2,0,1 +Version=6,0 Category=C4D_Structure Width=15 Height=30 diff --git a/planet/Objects.ocd/Structures.ocd/InventorsLab.ocd/DefCore.txt b/planet/Objects.ocd/Structures.ocd/InventorsLab.ocd/DefCore.txt index 3c01e727c..f5e08c2a6 100644 --- a/planet/Objects.ocd/Structures.ocd/InventorsLab.ocd/DefCore.txt +++ b/planet/Objects.ocd/Structures.ocd/InventorsLab.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=InventorsLab -Version=5,2,90,21 +Version=6,0 Category=C4D_Structure Width=82 Height=82 diff --git a/planet/Objects.ocd/Structures.ocd/Kitchen.ocd/DefCore.txt b/planet/Objects.ocd/Structures.ocd/Kitchen.ocd/DefCore.txt index fbda1d028..0c77b2939 100644 --- a/planet/Objects.ocd/Structures.ocd/Kitchen.ocd/DefCore.txt +++ b/planet/Objects.ocd/Structures.ocd/Kitchen.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Kitchen -Version=5,2,90,21 +Version=6,0 Category=C4D_Structure Width=50 Height=52 diff --git a/planet/Objects.ocd/Structures.ocd/Loom.ocd/DefCore.txt b/planet/Objects.ocd/Structures.ocd/Loom.ocd/DefCore.txt index 7d1a3284e..2b6947aaf 100644 --- a/planet/Objects.ocd/Structures.ocd/Loom.ocd/DefCore.txt +++ b/planet/Objects.ocd/Structures.ocd/Loom.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Loom -Version=5,2,0,1 +Version=6,0 Category=C4D_Structure Width=40 Height=29 diff --git a/planet/Objects.ocd/Structures.ocd/Pump.ocd/DefCore.txt b/planet/Objects.ocd/Structures.ocd/Pump.ocd/DefCore.txt index ebf7472fe..a8e1ff8c1 100644 --- a/planet/Objects.ocd/Structures.ocd/Pump.ocd/DefCore.txt +++ b/planet/Objects.ocd/Structures.ocd/Pump.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Pump -Version=5,2,0,1 +Version=6,0 Category=C4D_Structure Width=28 Height=32 diff --git a/planet/Objects.ocd/Structures.ocd/Sawmill.ocd/DefCore.txt b/planet/Objects.ocd/Structures.ocd/Sawmill.ocd/DefCore.txt index 102f2766f..dc71225fc 100644 --- a/planet/Objects.ocd/Structures.ocd/Sawmill.ocd/DefCore.txt +++ b/planet/Objects.ocd/Structures.ocd/Sawmill.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Sawmill -Version=5,2,0,1 +Version=6,0 Category=C4D_Structure Width=50 Height=31 diff --git a/planet/Objects.ocd/Structures.ocd/Shipyard.ocd/DefCore.txt b/planet/Objects.ocd/Structures.ocd/Shipyard.ocd/DefCore.txt index ffa795feb..ec3da7fcb 100644 --- a/planet/Objects.ocd/Structures.ocd/Shipyard.ocd/DefCore.txt +++ b/planet/Objects.ocd/Structures.ocd/Shipyard.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Shipyard -Version=5,2,90,21 +Version=6,0 Category=C4D_Structure Width=128 Height=106 diff --git a/planet/Objects.ocd/Structures.ocd/SteamEngine.ocd/DefCore.txt b/planet/Objects.ocd/Structures.ocd/SteamEngine.ocd/DefCore.txt index 3216ec5c2..36cbeacd3 100644 --- a/planet/Objects.ocd/Structures.ocd/SteamEngine.ocd/DefCore.txt +++ b/planet/Objects.ocd/Structures.ocd/SteamEngine.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=SteamEngine -Version=5,2,0,1 +Version=6,0 Category=C4D_Structure Width=66 Height=48 diff --git a/planet/Objects.ocd/Structures.ocd/StoneDoor.ocd/DefCore.txt b/planet/Objects.ocd/Structures.ocd/StoneDoor.ocd/DefCore.txt index d7db628c0..f6bff4da4 100644 --- a/planet/Objects.ocd/Structures.ocd/StoneDoor.ocd/DefCore.txt +++ b/planet/Objects.ocd/Structures.ocd/StoneDoor.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=StoneDoor -Version=5,2,0,1 +Version=6,0 Category=C4D_Structure Width=8 Height=40 diff --git a/planet/Objects.ocd/Structures.ocd/StoneDoor.ocd/SpinWheel.ocd/DefCore.txt b/planet/Objects.ocd/Structures.ocd/StoneDoor.ocd/SpinWheel.ocd/DefCore.txt index 7c8bdb62c..26daa6a1a 100644 --- a/planet/Objects.ocd/Structures.ocd/StoneDoor.ocd/SpinWheel.ocd/DefCore.txt +++ b/planet/Objects.ocd/Structures.ocd/StoneDoor.ocd/SpinWheel.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=SpinWheel -Version=5,2,0,1 +Version=6,0 Category=C4D_Structure Width=16 Height=16 diff --git a/planet/Objects.ocd/Structures.ocd/ToolsWorkshop.ocd/DefCore.txt b/planet/Objects.ocd/Structures.ocd/ToolsWorkshop.ocd/DefCore.txt index f4470becd..96de7cf50 100644 --- a/planet/Objects.ocd/Structures.ocd/ToolsWorkshop.ocd/DefCore.txt +++ b/planet/Objects.ocd/Structures.ocd/ToolsWorkshop.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=ToolsWorkshop -Version=5,2,0,1 +Version=6,0 Category=C4D_Structure Width=52 Height=40 diff --git a/planet/Objects.ocd/Structures.ocd/WindGenerator.ocd/DefCore.txt b/planet/Objects.ocd/Structures.ocd/WindGenerator.ocd/DefCore.txt index 9a5dc278a..edffa7a5f 100644 --- a/planet/Objects.ocd/Structures.ocd/WindGenerator.ocd/DefCore.txt +++ b/planet/Objects.ocd/Structures.ocd/WindGenerator.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=WindGenerator -Version=5,2,0,1 +Version=6,0 Category=C4D_Structure Width=24 Height=70 diff --git a/planet/Objects.ocd/Structures.ocd/WindGenerator.ocd/Wheel.ocd/DefCore.txt b/planet/Objects.ocd/Structures.ocd/WindGenerator.ocd/Wheel.ocd/DefCore.txt index a1ddf8de5..376d9e912 100644 --- a/planet/Objects.ocd/Structures.ocd/WindGenerator.ocd/Wheel.ocd/DefCore.txt +++ b/planet/Objects.ocd/Structures.ocd/WindGenerator.ocd/Wheel.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=WindGenerator_Wheel -Version=4,10,0,0 +Version=6,0 Category=C4D_Vehicle | C4D_MouseIgnore Width=50 Height=50 diff --git a/planet/Objects.ocd/Structures.ocd/Windmill.ocd/DefCore.txt b/planet/Objects.ocd/Structures.ocd/Windmill.ocd/DefCore.txt index 2297bc678..4bcf3b36f 100644 --- a/planet/Objects.ocd/Structures.ocd/Windmill.ocd/DefCore.txt +++ b/planet/Objects.ocd/Structures.ocd/Windmill.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Windmill -Version=5,2,0,1 +Version=6,0 Category=C4D_Structure Width=50 Height=96 diff --git a/planet/Objects.ocd/Structures.ocd/WoodenCabin.ocd/DefCore.txt b/planet/Objects.ocd/Structures.ocd/WoodenCabin.ocd/DefCore.txt index c983e491d..ebf5565fe 100644 --- a/planet/Objects.ocd/Structures.ocd/WoodenCabin.ocd/DefCore.txt +++ b/planet/Objects.ocd/Structures.ocd/WoodenCabin.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=WoodenCabin -Version=5,2,0,1 +Version=6,0 Category=C4D_Structure Width=94 Height=40 diff --git a/planet/Objects.ocd/Vegetation.ocd/Coral.ocd/CoralSeed.ocd/DefCore.txt b/planet/Objects.ocd/Vegetation.ocd/Coral.ocd/CoralSeed.ocd/DefCore.txt index 3a6831d37..8e47531c6 100644 --- a/planet/Objects.ocd/Vegetation.ocd/Coral.ocd/CoralSeed.ocd/DefCore.txt +++ b/planet/Objects.ocd/Vegetation.ocd/Coral.ocd/CoralSeed.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=CoralSeed -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=1 Height=1 diff --git a/planet/Objects.ocd/Vegetation.ocd/Coral.ocd/DefCore.txt b/planet/Objects.ocd/Vegetation.ocd/Coral.ocd/DefCore.txt index a172e6496..80ea7c1db 100644 --- a/planet/Objects.ocd/Vegetation.ocd/Coral.ocd/DefCore.txt +++ b/planet/Objects.ocd/Vegetation.ocd/Coral.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Coral -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=10 Height=10 diff --git a/planet/Objects.ocd/Vegetation.ocd/Fern.ocd/DefCore.txt b/planet/Objects.ocd/Vegetation.ocd/Fern.ocd/DefCore.txt index 30c77731e..13b6973e0 100644 --- a/planet/Objects.ocd/Vegetation.ocd/Fern.ocd/DefCore.txt +++ b/planet/Objects.ocd/Vegetation.ocd/Fern.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Fern -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack Width=28 Height=10 diff --git a/planet/Objects.ocd/Vegetation.ocd/Grass.ocd/DefCore.txt b/planet/Objects.ocd/Vegetation.ocd/Grass.ocd/DefCore.txt index 5b0d5e66e..1a9f2fc6e 100644 --- a/planet/Objects.ocd/Vegetation.ocd/Grass.ocd/DefCore.txt +++ b/planet/Objects.ocd/Vegetation.ocd/Grass.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Grass -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack|C4D_Background Width=12 Height=7 diff --git a/planet/Objects.ocd/Vegetation.ocd/LargeCaveMushroom.ocd/DefCore.txt b/planet/Objects.ocd/Vegetation.ocd/LargeCaveMushroom.ocd/DefCore.txt index f0f3e4d91..83170a308 100644 --- a/planet/Objects.ocd/Vegetation.ocd/LargeCaveMushroom.ocd/DefCore.txt +++ b/planet/Objects.ocd/Vegetation.ocd/LargeCaveMushroom.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=LargeCaveMushroom -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack Width=44 Height=64 diff --git a/planet/Objects.ocd/Vegetation.ocd/Lichen.ocd/DefCore.txt b/planet/Objects.ocd/Vegetation.ocd/Lichen.ocd/DefCore.txt index 3ba18a682..0fee16c58 100644 --- a/planet/Objects.ocd/Vegetation.ocd/Lichen.ocd/DefCore.txt +++ b/planet/Objects.ocd/Vegetation.ocd/Lichen.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Lichen -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack Width=25 Height=25 diff --git a/planet/Objects.ocd/Vegetation.ocd/Mushroom.ocd/DefCore.txt b/planet/Objects.ocd/Vegetation.ocd/Mushroom.ocd/DefCore.txt index a98366544..f8ae39aee 100644 --- a/planet/Objects.ocd/Vegetation.ocd/Mushroom.ocd/DefCore.txt +++ b/planet/Objects.ocd/Vegetation.ocd/Mushroom.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Mushroom -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=12 Height=20 diff --git a/planet/Objects.ocd/Vegetation.ocd/Rank.ocd/DefCore.txt b/planet/Objects.ocd/Vegetation.ocd/Rank.ocd/DefCore.txt index 26fc831bd..7867c096d 100644 --- a/planet/Objects.ocd/Vegetation.ocd/Rank.ocd/DefCore.txt +++ b/planet/Objects.ocd/Vegetation.ocd/Rank.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Rank -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack Width=28 Height=10 diff --git a/planet/Objects.ocd/Vegetation.ocd/Seaweed.ocd/DefCore.txt b/planet/Objects.ocd/Vegetation.ocd/Seaweed.ocd/DefCore.txt index c00338117..e03330cb2 100644 --- a/planet/Objects.ocd/Vegetation.ocd/Seaweed.ocd/DefCore.txt +++ b/planet/Objects.ocd/Vegetation.ocd/Seaweed.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Seaweed -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=6 Height=16 diff --git a/planet/Objects.ocd/Vegetation.ocd/SproutBerryBush.ocd/DefCore.txt b/planet/Objects.ocd/Vegetation.ocd/SproutBerryBush.ocd/DefCore.txt index 8c9f811ba..e54dba5ee 100644 --- a/planet/Objects.ocd/Vegetation.ocd/SproutBerryBush.ocd/DefCore.txt +++ b/planet/Objects.ocd/Vegetation.ocd/SproutBerryBush.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=SproutBerryBush -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack Width=16 Height=16 diff --git a/planet/Objects.ocd/Vegetation.ocd/SproutBerryBush.ocd/Flower.ocd/DefCore.txt b/planet/Objects.ocd/Vegetation.ocd/SproutBerryBush.ocd/Flower.ocd/DefCore.txt index 2cdf01cae..38056e3a2 100644 --- a/planet/Objects.ocd/Vegetation.ocd/SproutBerryBush.ocd/Flower.ocd/DefCore.txt +++ b/planet/Objects.ocd/Vegetation.ocd/SproutBerryBush.ocd/Flower.ocd/DefCore.txt @@ -1,5 +1,5 @@ [DefCore] id=SproutBerryBush_Flower -Version=4,10,0,0 +Version=6,0 Category=C4D_Object diff --git a/planet/Objects.ocd/Vegetation.ocd/SproutBerryBush.ocd/Leaf.ocd/DefCore.txt b/planet/Objects.ocd/Vegetation.ocd/SproutBerryBush.ocd/Leaf.ocd/DefCore.txt index 555707352..d9d05f100 100644 --- a/planet/Objects.ocd/Vegetation.ocd/SproutBerryBush.ocd/Leaf.ocd/DefCore.txt +++ b/planet/Objects.ocd/Vegetation.ocd/SproutBerryBush.ocd/Leaf.ocd/DefCore.txt @@ -1,5 +1,5 @@ [DefCore] id=SproutBerryBush_Leaf -Version=4,10,0,0 +Version=6,0 Category=C4D_Object diff --git a/planet/Objects.ocd/Vegetation.ocd/SproutBerryBush.ocd/Sprout.ocd/DefCore.txt b/planet/Objects.ocd/Vegetation.ocd/SproutBerryBush.ocd/Sprout.ocd/DefCore.txt index f86978e5e..72f070a58 100644 --- a/planet/Objects.ocd/Vegetation.ocd/SproutBerryBush.ocd/Sprout.ocd/DefCore.txt +++ b/planet/Objects.ocd/Vegetation.ocd/SproutBerryBush.ocd/Sprout.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=SproutBerryBush_Sprout -Version=4,10,0,0 +Version=6,0 Category=C4D_Vehicle Width=30 Height=30 diff --git a/planet/Objects.ocd/Vegetation.ocd/Trees.ocd/Coconut.ocd/CoconutSeed.ocd/DefCore.txt b/planet/Objects.ocd/Vegetation.ocd/Trees.ocd/Coconut.ocd/CoconutSeed.ocd/DefCore.txt index 006433e16..0ad4bf0d5 100644 --- a/planet/Objects.ocd/Vegetation.ocd/Trees.ocd/Coconut.ocd/CoconutSeed.ocd/DefCore.txt +++ b/planet/Objects.ocd/Vegetation.ocd/Trees.ocd/Coconut.ocd/CoconutSeed.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Coconut -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=8 Height=8 diff --git a/planet/Objects.ocd/Vegetation.ocd/Trees.ocd/Coconut.ocd/DefCore.txt b/planet/Objects.ocd/Vegetation.ocd/Trees.ocd/Coconut.ocd/DefCore.txt index d69dfe827..7145f14b8 100644 --- a/planet/Objects.ocd/Vegetation.ocd/Trees.ocd/Coconut.ocd/DefCore.txt +++ b/planet/Objects.ocd/Vegetation.ocd/Trees.ocd/Coconut.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Tree_Coconut -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack Width=80 Height=80 diff --git a/planet/Objects.ocd/Vegetation.ocd/Trees.ocd/Coniferous.ocd/ConiferousBurned.ocd/DefCore.txt b/planet/Objects.ocd/Vegetation.ocd/Trees.ocd/Coniferous.ocd/ConiferousBurned.ocd/DefCore.txt index 08f03c784..977418073 100644 --- a/planet/Objects.ocd/Vegetation.ocd/Trees.ocd/Coniferous.ocd/ConiferousBurned.ocd/DefCore.txt +++ b/planet/Objects.ocd/Vegetation.ocd/Trees.ocd/Coniferous.ocd/ConiferousBurned.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Tree_Coniferous_Burned -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack Width=60 Height=110 diff --git a/planet/Objects.ocd/Vegetation.ocd/Trees.ocd/Coniferous.ocd/DefCore.txt b/planet/Objects.ocd/Vegetation.ocd/Trees.ocd/Coniferous.ocd/DefCore.txt index 201f2d501..a1feac404 100644 --- a/planet/Objects.ocd/Vegetation.ocd/Trees.ocd/Coniferous.ocd/DefCore.txt +++ b/planet/Objects.ocd/Vegetation.ocd/Trees.ocd/Coniferous.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Tree_Coniferous -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack Width=60 Height=110 diff --git a/planet/Objects.ocd/Vegetation.ocd/Trunk.ocd/DefCore.txt b/planet/Objects.ocd/Vegetation.ocd/Trunk.ocd/DefCore.txt index 319bd59c3..78d62a0ec 100644 --- a/planet/Objects.ocd/Vegetation.ocd/Trunk.ocd/DefCore.txt +++ b/planet/Objects.ocd/Vegetation.ocd/Trunk.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Trunk -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack Width=20 Height=60 diff --git a/planet/Objects.ocd/Vegetation.ocd/Wheat.ocd/DefCore.txt b/planet/Objects.ocd/Vegetation.ocd/Wheat.ocd/DefCore.txt index 30b71fac5..81b84b705 100644 --- a/planet/Objects.ocd/Vegetation.ocd/Wheat.ocd/DefCore.txt +++ b/planet/Objects.ocd/Vegetation.ocd/Wheat.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Wheat -Version=4,10,0,0 +Version=6,0 Category=C4D_StaticBack Width=10 Height=20 diff --git a/planet/Objects.ocd/Vehicles.ocd/Airplane.ocd/DefCore.txt b/planet/Objects.ocd/Vehicles.ocd/Airplane.ocd/DefCore.txt index 936e0c3b8..be28feb70 100644 --- a/planet/Objects.ocd/Vehicles.ocd/Airplane.ocd/DefCore.txt +++ b/planet/Objects.ocd/Vehicles.ocd/Airplane.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Plane -Version=5,2,0,1 +Version=6,0 Category=C4D_Vehicle Width=40 Height=56 diff --git a/planet/Objects.ocd/Vehicles.ocd/Airplane.ocd/Reticle.ocd/DefCore.txt b/planet/Objects.ocd/Vehicles.ocd/Airplane.ocd/Reticle.ocd/DefCore.txt index 9c9005afe..5bcc8b252 100644 --- a/planet/Objects.ocd/Vehicles.ocd/Airplane.ocd/Reticle.ocd/DefCore.txt +++ b/planet/Objects.ocd/Vehicles.ocd/Airplane.ocd/Reticle.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=GUI_Reticle -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack Width=16 Height=144 diff --git a/planet/Objects.ocd/Vehicles.ocd/Airship.ocd/AirshipBurnt.ocd/DefCore.txt b/planet/Objects.ocd/Vehicles.ocd/Airship.ocd/AirshipBurnt.ocd/DefCore.txt index 08bb648e3..8a870a34a 100644 --- a/planet/Objects.ocd/Vehicles.ocd/Airship.ocd/AirshipBurnt.ocd/DefCore.txt +++ b/planet/Objects.ocd/Vehicles.ocd/Airship.ocd/AirshipBurnt.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Airship_Burnt -Version=5,2,0,1 +Version=6,0 Category=C4D_Vehicle Width=64 Height=54 diff --git a/planet/Objects.ocd/Vehicles.ocd/Airship.ocd/AirshipHitbox.ocd/DefCore.txt b/planet/Objects.ocd/Vehicles.ocd/Airship.ocd/AirshipHitbox.ocd/DefCore.txt index f5498ac5b..479fc80b6 100644 --- a/planet/Objects.ocd/Vehicles.ocd/Airship.ocd/AirshipHitbox.ocd/DefCore.txt +++ b/planet/Objects.ocd/Vehicles.ocd/Airship.ocd/AirshipHitbox.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Airship_Hitbox -Version=5,2,0,1 +Version=6,0 Width=42 Height=28 Offset=-21,-28 diff --git a/planet/Objects.ocd/Vehicles.ocd/Airship.ocd/DefCore.txt b/planet/Objects.ocd/Vehicles.ocd/Airship.ocd/DefCore.txt index 515b54038..c1bb8a86a 100644 --- a/planet/Objects.ocd/Vehicles.ocd/Airship.ocd/DefCore.txt +++ b/planet/Objects.ocd/Vehicles.ocd/Airship.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Airship -Version=5,2,0,1 +Version=6,0 Category=C4D_Vehicle Width=64 Height=54 diff --git a/planet/Objects.ocd/Vehicles.ocd/Cannon.ocd/DefCore.txt b/planet/Objects.ocd/Vehicles.ocd/Cannon.ocd/DefCore.txt index a2c0d2a68..d91be21bf 100644 --- a/planet/Objects.ocd/Vehicles.ocd/Cannon.ocd/DefCore.txt +++ b/planet/Objects.ocd/Vehicles.ocd/Cannon.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Cannon -Version=5,2,0,1 +Version=6,0 Category=C4D_Vehicle ContactCalls=1 Width=22 diff --git a/planet/Objects.ocd/Vehicles.ocd/Catapult.ocd/DefCore.txt b/planet/Objects.ocd/Vehicles.ocd/Catapult.ocd/DefCore.txt index ce1dabe84..7d59805b0 100644 --- a/planet/Objects.ocd/Vehicles.ocd/Catapult.ocd/DefCore.txt +++ b/planet/Objects.ocd/Vehicles.ocd/Catapult.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Catapult -Version=5,2,0,1 +Version=6,0 Category=C4D_Vehicle ContactCalls=1 Width=34 diff --git a/planet/Objects.ocd/Vehicles.ocd/Lorry.ocd/DefCore.txt b/planet/Objects.ocd/Vehicles.ocd/Lorry.ocd/DefCore.txt index 4db4d0064..0db42355d 100644 --- a/planet/Objects.ocd/Vehicles.ocd/Lorry.ocd/DefCore.txt +++ b/planet/Objects.ocd/Vehicles.ocd/Lorry.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Lorry -Version=5,2,0,1 +Version=6,0 Category=C4D_Vehicle ContactCalls=1 Width=22 diff --git a/planet/Parkour.ocf/Boomrace.ocs/Scenario.txt b/planet/Parkour.ocf/Boomrace.ocs/Scenario.txt index a92bf4c8b..7855efa4d 100644 --- a/planet/Parkour.ocf/Boomrace.ocs/Scenario.txt +++ b/planet/Parkour.ocf/Boomrace.ocs/Scenario.txt @@ -1,7 +1,7 @@ [Head] Icon=39 Title=Boomrace -Version=5,2,0,1 +Version=6,0 Difficulty=30 [Definitions] diff --git a/planet/Parkour.ocf/Boomshire.ocs/ArrowWheel.ocd/DefCore.txt b/planet/Parkour.ocf/Boomshire.ocs/ArrowWheel.ocd/DefCore.txt index a3818b79b..5284ea573 100644 --- a/planet/Parkour.ocf/Boomshire.ocs/ArrowWheel.ocd/DefCore.txt +++ b/planet/Parkour.ocf/Boomshire.ocs/ArrowWheel.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=ArrowWheel -Version=5,2,0,1 +Version=6,0 Category=C4D_Structure Width=16 Height=16 diff --git a/planet/Parkour.ocf/Boomshire.ocs/BrickEdge.ocd/DefCore.txt b/planet/Parkour.ocf/Boomshire.ocs/BrickEdge.ocd/DefCore.txt index 97ef7d7cd..ea1867843 100644 --- a/planet/Parkour.ocf/Boomshire.ocs/BrickEdge.ocd/DefCore.txt +++ b/planet/Parkour.ocf/Boomshire.ocs/BrickEdge.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=BrickEdge -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack|C4D_MouseIgnore Width=10 Height=10 diff --git a/planet/Parkour.ocf/Boomshire.ocs/Scenario.txt b/planet/Parkour.ocf/Boomshire.ocs/Scenario.txt index 21923c954..4825f9d48 100644 --- a/planet/Parkour.ocf/Boomshire.ocs/Scenario.txt +++ b/planet/Parkour.ocf/Boomshire.ocs/Scenario.txt @@ -1,7 +1,7 @@ [Head] Icon=17 Title=Boomshire -Version=4,10 +Version=6,0 MinPlayer=2 MaxPlayer=2 Difficulty=50 diff --git a/planet/Parkour.ocf/Boomshire.ocs/Target.ocd/DefCore.txt b/planet/Parkour.ocf/Boomshire.ocs/Target.ocd/DefCore.txt index 4e6e24d29..a95486215 100644 --- a/planet/Parkour.ocf/Boomshire.ocs/Target.ocd/DefCore.txt +++ b/planet/Parkour.ocf/Boomshire.ocs/Target.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=DoorTarget -Version=4,9,8 +Version=6,0 Category=C4D_Vehicle Width=25 Height=25 diff --git a/planet/Parkour.ocf/BristleRidge.ocs/Scenario.txt b/planet/Parkour.ocf/BristleRidge.ocs/Scenario.txt index ca8fd14b4..5d6bafae7 100644 --- a/planet/Parkour.ocf/BristleRidge.ocs/Scenario.txt +++ b/planet/Parkour.ocf/BristleRidge.ocs/Scenario.txt @@ -1,7 +1,7 @@ [Head] Icon=34 Title=BristleRidge -Version=4,10,0 +Version=6,0 Difficulty=40 [Definitions] diff --git a/planet/Parkour.ocf/Cavern.ocs/Scenario.txt b/planet/Parkour.ocf/Cavern.ocs/Scenario.txt index 85c4a17bb..b8abb36ef 100644 --- a/planet/Parkour.ocf/Cavern.ocs/Scenario.txt +++ b/planet/Parkour.ocf/Cavern.ocs/Scenario.txt @@ -1,7 +1,7 @@ [Head] Icon=34 Title=Cavern -Version=5,2,0,1 +Version=6,0 Difficulty=20 [Definitions] diff --git a/planet/Parkour.ocf/Maze.ocs/Scenario.txt b/planet/Parkour.ocf/Maze.ocs/Scenario.txt index 2572232d4..cf76642b4 100644 --- a/planet/Parkour.ocf/Maze.ocs/Scenario.txt +++ b/planet/Parkour.ocf/Maze.ocs/Scenario.txt @@ -1,7 +1,7 @@ [Head] Icon=34 Title=Maze -Version=5,2,0,1 +Version=6,0 Difficulty=20 [Definitions] diff --git a/planet/Parkour.ocf/Maze.ocs/Signpost.ocd/DefCore.txt b/planet/Parkour.ocf/Maze.ocs/Signpost.ocd/DefCore.txt index 1e3687309..f15e0cc63 100644 --- a/planet/Parkour.ocf/Maze.ocs/Signpost.ocd/DefCore.txt +++ b/planet/Parkour.ocf/Maze.ocs/Signpost.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Signpost -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack Width=32 Height=32 diff --git a/planet/Parkour.ocf/Maze.ocs/SprayCan.ocd/DefCore.txt b/planet/Parkour.ocf/Maze.ocs/SprayCan.ocd/DefCore.txt index 018daac25..a8a7946bc 100644 --- a/planet/Parkour.ocf/Maze.ocs/SprayCan.ocd/DefCore.txt +++ b/planet/Parkour.ocf/Maze.ocs/SprayCan.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=SprayCan -Version=5,2,0,1 +Version=6,0 Category=C4D_Object Width=9 Height=3 diff --git a/planet/Parkour.ocf/ShiverPeak.ocs/Scenario.txt b/planet/Parkour.ocf/ShiverPeak.ocs/Scenario.txt index 4319b672e..19af079c8 100644 --- a/planet/Parkour.ocf/ShiverPeak.ocs/Scenario.txt +++ b/planet/Parkour.ocf/ShiverPeak.ocs/Scenario.txt @@ -1,7 +1,7 @@ [Head] Icon=24 Title=ShiverPeak -Version=4,10 +Version=6,0 Difficulty=10 [Definitions] diff --git a/planet/Parkour.ocf/VolcanoEscape.ocs/Scenario.txt b/planet/Parkour.ocf/VolcanoEscape.ocs/Scenario.txt index 92928ae5e..ee4c9c041 100644 --- a/planet/Parkour.ocf/VolcanoEscape.ocs/Scenario.txt +++ b/planet/Parkour.ocf/VolcanoEscape.ocs/Scenario.txt @@ -1,7 +1,7 @@ [Head] Icon=23 Title=VolcanoEscape -Version=5,2,0,1 +Version=6,0 Difficulty=50 [Definitions] diff --git a/planet/Parkour.ocf/VolcanoEscapeEx.ocs/BigVolcano.ocd/DefCore.txt b/planet/Parkour.ocf/VolcanoEscapeEx.ocs/BigVolcano.ocd/DefCore.txt index 21b366ff2..371a13bfa 100644 --- a/planet/Parkour.ocf/VolcanoEscapeEx.ocs/BigVolcano.ocd/DefCore.txt +++ b/planet/Parkour.ocf/VolcanoEscapeEx.ocs/BigVolcano.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=BigVolcano -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack Width=1 Height=1 diff --git a/planet/Parkour.ocf/VolcanoEscapeEx.ocs/Scenario.txt b/planet/Parkour.ocf/VolcanoEscapeEx.ocs/Scenario.txt index f314cd42e..9f37989b2 100644 --- a/planet/Parkour.ocf/VolcanoEscapeEx.ocs/Scenario.txt +++ b/planet/Parkour.ocf/VolcanoEscapeEx.ocs/Scenario.txt @@ -1,7 +1,7 @@ [Head] Icon=23 Title=VolcanoEscapeEx -Version=5,2,0,1 +Version=6,0 Difficulty=70 [Definitions] diff --git a/planet/Sound.ocg/Version.txt b/planet/Sound.ocg/Version.txt index 804440660..504953848 100644 --- a/planet/Sound.ocg/Version.txt +++ b/planet/Sound.ocg/Version.txt @@ -1 +1 @@ -5.2.1 \ No newline at end of file +6.0 \ No newline at end of file diff --git a/planet/System.ocg/Action.c b/planet/System.ocg/Action.c index 865dc61e5..6c765de1f 100644 --- a/planet/System.ocg/Action.c +++ b/planet/System.ocg/Action.c @@ -28,7 +28,7 @@ static const Action = { Procedure = DFA_NONE, }; -global func GameCall(string fn) { +global func GameCall(string fn, ...) { if (!fn) return; var f = Scenario[fn]; if (!f) return; diff --git a/planet/System.ocg/ClonkControl.c b/planet/System.ocg/ClonkControl.c index 18b13bec9..8874497b8 100644 --- a/planet/System.ocg/ClonkControl.c +++ b/planet/System.ocg/ClonkControl.c @@ -6,10 +6,10 @@ // disable ShiftContents for objects with ClonkControl.ocd -global func ShiftContents() +global func ShiftContents(...) { if (this) if (this->~HandObjects() != nil) return false; return _inherited(...); -} \ No newline at end of file +} diff --git a/planet/System.ocg/FindLocation.c b/planet/System.ocg/FindLocation.c index e38933f97..84a96558e 100644 --- a/planet/System.ocg/FindLocation.c +++ b/planet/System.ocg/FindLocation.c @@ -39,7 +39,7 @@ global func Loc_Not(cond) return [LOC_NOT, cond]; } -global func Loc_Or() +global func Loc_Or(...) { var conds = [LOC_OR]; for (var i = 0; i < 10; ++i) @@ -50,7 +50,7 @@ global func Loc_Or() return conds; } -global func Loc_And() +global func Loc_And(...) { var conds = [LOC_AND]; for (var i = 0; i < 10; ++i) @@ -131,7 +131,7 @@ global func Loc_Space(int space, bool vertical) return [LOC_SPACE, space, vertical]; } -global func FindLocation(condition1) +global func FindLocation(condition1, ...) { var rect = nil; var xdir = 0, ydir = 0, xmod = nil, ymod = nil; @@ -279,4 +279,4 @@ global func FindLocationConditionCheckIsValid(flag, x, y) // invalid flag? always fulfilled return true; -} \ No newline at end of file +} diff --git a/planet/System.ocg/FindObject.c b/planet/System.ocg/FindObject.c index 85999819e..2293ee4ee 100644 --- a/planet/System.ocg/FindObject.c +++ b/planet/System.ocg/FindObject.c @@ -13,7 +13,7 @@ global func Find_Not(cond) return [C4FO_Not, cond]; } -global func Find_And() +global func Find_And(...) { var result = [C4FO_And]; for (var i = 0; Par(i); i++) @@ -21,7 +21,7 @@ global func Find_And() return result; } -global func Find_Or() +global func Find_Or(...) { var result = [C4FO_Or]; for (var i = 0; Par(i); i++) @@ -175,7 +175,7 @@ global func Sort_Reverse(array sort) return [C4SO_Reverse, sort]; } -global func Sort_Multiple() +global func Sort_Multiple(...) { var result = [C4SO_Multiple]; for (var i = 0; Par(i); i++) diff --git a/planet/System.ocg/Object.c b/planet/System.ocg/Object.c index ad5964222..8018eb616 100644 --- a/planet/System.ocg/Object.c +++ b/planet/System.ocg/Object.c @@ -226,7 +226,7 @@ global func StonyObjectHit(int x, int y) } // Removes all objects of the given type. -global func RemoveAll(p) +global func RemoveAll(p, ...) { var cnt; if (GetType(p) == C4V_PropList) p = Find_ID(p); // RemoveAll(ID) shortcut diff --git a/planet/System.ocg/SaveScenario.c b/planet/System.ocg/SaveScenario.c index c079c2c20..f7d3b4a04 100644 --- a/planet/System.ocg/SaveScenario.c +++ b/planet/System.ocg/SaveScenario.c @@ -421,7 +421,7 @@ global func GetConstantNameByValueSafe(v, prefix) /* SaveScen_PropList functions */ // I would like to use non-global here, but how can I take a pointer then? -global func SaveScenP_Add(string name, string s) +global func SaveScenP_Add(string name, string s, ...) { // apply format parametrers s = Format(s, ...); @@ -466,7 +466,7 @@ global func SaveScenP_Clear() return true; } -global func SaveScenP_AddCall(string name, proplist obj, string set_fn) +global func SaveScenP_AddCall(string name, proplist obj, string set_fn, ...) { // add string of style Obj123->SetFoo(bar, baz, ...) // string parameters will not be quoted, so the caller can do some parameter formatting diff --git a/planet/System.ocg/Version.txt b/planet/System.ocg/Version.txt index 804440660..504953848 100644 --- a/planet/System.ocg/Version.txt +++ b/planet/System.ocg/Version.txt @@ -1 +1 @@ -5.2.1 \ No newline at end of file +6.0 \ No newline at end of file diff --git a/planet/Tests.ocf/AI.ocs/Scenario.txt b/planet/Tests.ocf/AI.ocs/Scenario.txt index 9a0ef1b06..61e427db1 100644 --- a/planet/Tests.ocf/AI.ocs/Scenario.txt +++ b/planet/Tests.ocf/AI.ocs/Scenario.txt @@ -1,6 +1,6 @@ [Head] Title=AIBattle -Version=5,3,2 +Version=6,0 MaxPlayer=2 [Definitions] diff --git a/planet/Tests.ocf/IncludeTest.ocs/Dummy.ocd/DefCore.txt b/planet/Tests.ocf/IncludeTest.ocs/Dummy.ocd/DefCore.txt index 698893151..17fa95bf3 100644 --- a/planet/Tests.ocf/IncludeTest.ocs/Dummy.ocd/DefCore.txt +++ b/planet/Tests.ocf/IncludeTest.ocs/Dummy.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=DummyParent -Version=5,3,0,0 +Version=6,0 Category=C4D_StaticBack Width=8 Height=8 diff --git a/planet/Tests.ocf/IncludeTest.ocs/DummyChild.ocd/DefCore.txt b/planet/Tests.ocf/IncludeTest.ocs/DummyChild.ocd/DefCore.txt index becef86c3..064ec4ec3 100644 --- a/planet/Tests.ocf/IncludeTest.ocs/DummyChild.ocd/DefCore.txt +++ b/planet/Tests.ocf/IncludeTest.ocs/DummyChild.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=DummyChild -Version=5,3,0,0 +Version=6,0 Category=C4D_StaticBack Width=8 Height=8 diff --git a/planet/Tests.ocf/LocalDefsOnly.ocs/Dummy.ocd/DefCore.txt b/planet/Tests.ocf/LocalDefsOnly.ocs/Dummy.ocd/DefCore.txt index d9e829ad5..975a14c36 100644 --- a/planet/Tests.ocf/LocalDefsOnly.ocs/Dummy.ocd/DefCore.txt +++ b/planet/Tests.ocf/LocalDefsOnly.ocs/Dummy.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Clonk -Version=5,3,0,0 +Version=6,0 Category=C4D_StaticBack Width=8 Height=8 diff --git a/planet/Tests.ocf/PXSAndSmoke.ocs/Scenario.txt b/planet/Tests.ocf/PXSAndSmoke.ocs/Scenario.txt index fc845b338..cce0e2444 100644 --- a/planet/Tests.ocf/PXSAndSmoke.ocs/Scenario.txt +++ b/planet/Tests.ocf/PXSAndSmoke.ocs/Scenario.txt @@ -1,5 +1,5 @@ [Head] -Version=5,5,1 +Version=6,0 NoInitialize=true [Player1] diff --git a/planet/Tutorial.ocf/Tutorial.ocd/FlagGoal.ocd/DefCore.txt b/planet/Tutorial.ocf/Tutorial.ocd/FlagGoal.ocd/DefCore.txt index 174ce3755..0298c9217 100644 --- a/planet/Tutorial.ocf/Tutorial.ocd/FlagGoal.ocd/DefCore.txt +++ b/planet/Tutorial.ocf/Tutorial.ocd/FlagGoal.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=Goal_ReachFlag -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack|C4D_Goal Width=1 Height=1 diff --git a/planet/Tutorial.ocf/Tutorial.ocd/FlagGoal.ocd/Flag.ocd/DefCore.txt b/planet/Tutorial.ocf/Tutorial.ocd/FlagGoal.ocd/Flag.ocd/DefCore.txt index 91a555c7d..3ae0add51 100644 --- a/planet/Tutorial.ocf/Tutorial.ocd/FlagGoal.ocd/Flag.ocd/DefCore.txt +++ b/planet/Tutorial.ocf/Tutorial.ocd/FlagGoal.ocd/Flag.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=TutorialFlag -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack Width=30 Height=40 diff --git a/planet/Tutorial.ocf/Tutorial.ocd/TutGuide.ocd/DefCore.txt b/planet/Tutorial.ocf/Tutorial.ocd/TutGuide.ocd/DefCore.txt index 6333d5e7c..561a1156c 100644 --- a/planet/Tutorial.ocf/Tutorial.ocd/TutGuide.ocd/DefCore.txt +++ b/planet/Tutorial.ocf/Tutorial.ocd/TutGuide.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=TutorialGuide -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack | C4D_IgnoreFoW | C4D_Foreground | C4D_Parallax | C4D_MouseSelect Width=64 Height=64 diff --git a/planet/Tutorial.ocf/Tutorial.ocd/TutorialArrow.ocd/DefCore.txt b/planet/Tutorial.ocf/Tutorial.ocd/TutorialArrow.ocd/DefCore.txt index 13276176d..61fb97e02 100644 --- a/planet/Tutorial.ocf/Tutorial.ocd/TutorialArrow.ocd/DefCore.txt +++ b/planet/Tutorial.ocf/Tutorial.ocd/TutorialArrow.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=TutorialArrow -Version=5,2,0,1 +Version=6,0 Category=C4D_StaticBack Width=32 Height=32 diff --git a/planet/Tutorial.ocf/Tutorial01.ocs/Scenario.txt b/planet/Tutorial.ocf/Tutorial01.ocs/Scenario.txt index 1d892d774..711bb5992 100644 --- a/planet/Tutorial.ocf/Tutorial01.ocs/Scenario.txt +++ b/planet/Tutorial.ocf/Tutorial01.ocs/Scenario.txt @@ -1,7 +1,7 @@ [Head] Icon=2 Title=Tutorial01 -Version=5,2,0,1 +Version=6,0 MaxPlayer=1 Difficulty=1 diff --git a/planet/Tutorial.ocf/Tutorial02.ocs/Scenario.txt b/planet/Tutorial.ocf/Tutorial02.ocs/Scenario.txt index 164f66e58..f8be14956 100644 --- a/planet/Tutorial.ocf/Tutorial02.ocs/Scenario.txt +++ b/planet/Tutorial.ocf/Tutorial02.ocs/Scenario.txt @@ -1,7 +1,7 @@ [Head] Icon=3 Title=Tutorial02 -Version=5,2,0,1 +Version=6,0 MaxPlayer=1 Difficulty=2 diff --git a/planet/Tutorial.ocf/Tutorial03.ocs/Scenario.txt b/planet/Tutorial.ocf/Tutorial03.ocs/Scenario.txt index f46ec1655..e8d75505e 100644 --- a/planet/Tutorial.ocf/Tutorial03.ocs/Scenario.txt +++ b/planet/Tutorial.ocf/Tutorial03.ocs/Scenario.txt @@ -1,7 +1,7 @@ [Head] Icon=4 Title=Tutorial03 -Version=5,2,0,1 +Version=6,0 MaxPlayer=1 Difficulty=3 diff --git a/planet/Tutorial.ocf/Tutorial03.ocs/Target.ocd/DefCore.txt b/planet/Tutorial.ocf/Tutorial03.ocs/Target.ocd/DefCore.txt index 7a056817e..28f269f61 100644 --- a/planet/Tutorial.ocf/Tutorial03.ocs/Target.ocd/DefCore.txt +++ b/planet/Tutorial.ocf/Tutorial03.ocs/Target.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=PracticeTarget -Version=4,9,8 +Version=6,0 Category=C4D_Vehicle Width=25 Height=25 diff --git a/planet/Tutorial.ocf/Tutorial03.ocs/Target.ocd/TargetBalloon.ocd/BurntBalloon.ocd/DefCore.txt b/planet/Tutorial.ocf/Tutorial03.ocs/Target.ocd/TargetBalloon.ocd/BurntBalloon.ocd/DefCore.txt index 7f33b99e3..fd89bea85 100644 --- a/planet/Tutorial.ocf/Tutorial03.ocs/Target.ocd/TargetBalloon.ocd/BurntBalloon.ocd/DefCore.txt +++ b/planet/Tutorial.ocf/Tutorial03.ocs/Target.ocd/TargetBalloon.ocd/BurntBalloon.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=BurntBalloon -Version=4,9,8 +Version=6,0 Category=C4D_Vehicle Width=64 Height=64 diff --git a/planet/Tutorial.ocf/Tutorial03.ocs/Target.ocd/TargetBalloon.ocd/DefCore.txt b/planet/Tutorial.ocf/Tutorial03.ocs/Target.ocd/TargetBalloon.ocd/DefCore.txt index ce88b46c3..f47932c7b 100644 --- a/planet/Tutorial.ocf/Tutorial03.ocs/Target.ocd/TargetBalloon.ocd/DefCore.txt +++ b/planet/Tutorial.ocf/Tutorial03.ocs/Target.ocd/TargetBalloon.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=TargetBalloon -Version=4,9,8 +Version=6,0 Category=C4D_Vehicle Width=64 Height=64 diff --git a/planet/Tutorial.ocf/Tutorial04.ocs/Scenario.txt b/planet/Tutorial.ocf/Tutorial04.ocs/Scenario.txt index 5e2171b40..fb3953337 100644 --- a/planet/Tutorial.ocf/Tutorial04.ocs/Scenario.txt +++ b/planet/Tutorial.ocf/Tutorial04.ocs/Scenario.txt @@ -1,7 +1,7 @@ [Head] Icon=5 Title=Tutorial04 -Version=5,2,0,1 +Version=6,0 MaxPlayer=1 Difficulty=4 diff --git a/planet/Tutorial.ocf/Tutorial04.ocs/SwordTarget.ocd/DefCore.txt b/planet/Tutorial.ocf/Tutorial04.ocs/SwordTarget.ocd/DefCore.txt index e2ae0eddf..8a7bc5dc9 100644 --- a/planet/Tutorial.ocf/Tutorial04.ocs/SwordTarget.ocd/DefCore.txt +++ b/planet/Tutorial.ocf/Tutorial04.ocs/SwordTarget.ocd/DefCore.txt @@ -1,6 +1,6 @@ [DefCore] id=SwordTarget -Version=5,2,0,1 +Version=6,0 Category=C4D_Vehicle Width=12 Height=20 diff --git a/planet/Tutorial.ocf/Tutorial05.ocs/Scenario.txt b/planet/Tutorial.ocf/Tutorial05.ocs/Scenario.txt index 806a417c8..7ecaf3e8f 100644 --- a/planet/Tutorial.ocf/Tutorial05.ocs/Scenario.txt +++ b/planet/Tutorial.ocf/Tutorial05.ocs/Scenario.txt @@ -1,7 +1,7 @@ [Head] Icon=6 Title=TutorialSettlement -Version=5,2,0,0 +Version=6,0 MaxPlayer=1 Difficulty=5 diff --git a/planet/Worlds.ocf/AcidGoldMine.ocs/Scenario.txt b/planet/Worlds.ocf/AcidGoldMine.ocs/Scenario.txt index f59449d40..234aac49a 100644 --- a/planet/Worlds.ocf/AcidGoldMine.ocs/Scenario.txt +++ b/planet/Worlds.ocf/AcidGoldMine.ocs/Scenario.txt @@ -1,7 +1,7 @@ [Head] Title=AcidGoldMine Icon=22 -Version=5,4,0,0 +Version=6,0 Difficulty=100 [Definitions] diff --git a/planet/Worlds.ocf/AcidRift.ocs/Scenario.txt b/planet/Worlds.ocf/AcidRift.ocs/Scenario.txt index f12dc61a1..29f8a8120 100644 --- a/planet/Worlds.ocf/AcidRift.ocs/Scenario.txt +++ b/planet/Worlds.ocf/AcidRift.ocs/Scenario.txt @@ -1,7 +1,7 @@ [Head] Icon=36 Title=AcidRift -Version=5,4,0,0 +Version=6,0 Difficulty=60 [Definitions] diff --git a/planet/Worlds.ocf/Chine.ocs/Scenario.txt b/planet/Worlds.ocf/Chine.ocs/Scenario.txt index d00aecb61..bf08098ac 100644 --- a/planet/Worlds.ocf/Chine.ocs/Scenario.txt +++ b/planet/Worlds.ocf/Chine.ocs/Scenario.txt @@ -1,7 +1,7 @@ [Head] Icon=36 Title=Chine -Version=5,4,0,0 +Version=6,0 Difficulty=40 [Definitions] diff --git a/planet/Worlds.ocf/FloodedVeins.ocs/Scenario.txt b/planet/Worlds.ocf/FloodedVeins.ocs/Scenario.txt index a188058f3..731f03da1 100644 --- a/planet/Worlds.ocf/FloodedVeins.ocs/Scenario.txt +++ b/planet/Worlds.ocf/FloodedVeins.ocs/Scenario.txt @@ -1,7 +1,7 @@ [Head] Title=FloodedVeins Icon=24 -Version=5,4,0,0 +Version=6,0 Difficulty=30 [Definitions] diff --git a/planet/Worlds.ocf/GemGrabbers.ocs/Scenario.txt b/planet/Worlds.ocf/GemGrabbers.ocs/Scenario.txt index 78a2d6678..1fb23a875 100644 --- a/planet/Worlds.ocf/GemGrabbers.ocs/Scenario.txt +++ b/planet/Worlds.ocf/GemGrabbers.ocs/Scenario.txt @@ -1,7 +1,7 @@ [Head] Title=GemGrabbers Icon=35 -Version=5,4,0,0 +Version=6,0 Difficulty=80 [Definitions] diff --git a/planet/Worlds.ocf/GoldRush.ocs/Scenario.txt b/planet/Worlds.ocf/GoldRush.ocs/Scenario.txt index b187e635e..a713e0e91 100644 --- a/planet/Worlds.ocf/GoldRush.ocs/Scenario.txt +++ b/planet/Worlds.ocf/GoldRush.ocs/Scenario.txt @@ -1,7 +1,7 @@ [Head] Icon=15 Title=GoldRush -Version=5,4,0,0 +Version=6,0 Difficulty=10 [Definitions] diff --git a/planet/Worlds.ocf/IronPeak.ocs/Scenario.txt b/planet/Worlds.ocf/IronPeak.ocs/Scenario.txt index 9f8495934..330ad356e 100644 --- a/planet/Worlds.ocf/IronPeak.ocs/Scenario.txt +++ b/planet/Worlds.ocf/IronPeak.ocs/Scenario.txt @@ -1,7 +1,7 @@ [Head] Icon=1 Title=IronPeak -Version=5,4,0,0 +Version=6,0 Difficulty=20 [Definitions] diff --git a/planet/Worlds.ocf/Krakatoa.ocs/Scenario.txt b/planet/Worlds.ocf/Krakatoa.ocs/Scenario.txt index abec6a0cd..9311d497e 100644 --- a/planet/Worlds.ocf/Krakatoa.ocs/Scenario.txt +++ b/planet/Worlds.ocf/Krakatoa.ocs/Scenario.txt @@ -1,7 +1,7 @@ [Head] Icon=23 Title=Krakatoa -Version=5,4,0,0 +Version=6,0 Difficulty=50 [Definitions] diff --git a/src/C4Version.h.in b/src/C4Version.h.in index 81931d7b1..c889d17e0 100644 --- a/src/C4Version.h.in +++ b/src/C4Version.h.in @@ -36,7 +36,6 @@ #define C4XVER1 @C4XVER1@ #define C4XVER2 @C4XVER2@ -#define C4XVER3 @C4XVER3@ #define C4VERSIONBUILDNAME "@C4VERSIONBUILDNAME@" #define C4VERSIONEXTRA "@C4VERSIONEXTRA@" #define C4REVISION "@C4REVISION@" @@ -56,11 +55,11 @@ #define C4XVERTOC4XVERS(s) C4XVERTOC4XVERS2(s) #define C4XVERTOC4XVERS2(s) #s -// if C4XVER3 >= 90, this is a pre-release version; add VCS revision -#if C4XVER3 >= 90 -#define C4VERSION C4XVERTOC4XVERS(C4XVER1) "." C4XVERTOC4XVERS(C4XVER2) "." C4XVERTOC4XVERS(C4XVER3) " [" C4REVISION "]" C4VERSIONEXTRA C4BUILDOPT +// if C4XVER2 >= 90, this is a pre-release version; add VCS revision +#if C4XVER2 >= 90 +#define C4VERSION C4XVERTOC4XVERS(C4XVER1) "." C4XVERTOC4XVERS(C4XVER2) " [" C4REVISION "]" C4VERSIONEXTRA C4BUILDOPT #else -#define C4VERSION C4XVERTOC4XVERS(C4XVER1) "." C4XVERTOC4XVERS(C4XVER2) "." C4XVERTOC4XVERS(C4XVER3) C4VERSIONEXTRA C4BUILDOPT +#define C4VERSION C4XVERTOC4XVERS(C4XVER1) "." C4XVERTOC4XVERS(C4XVER2) C4VERSIONEXTRA C4BUILDOPT #endif // if this is set, add a build identifier to the logs and crash dumps diff --git a/src/c4group/C4Components.h b/src/c4group/C4Components.h index 436878376..195437022 100644 --- a/src/c4group/C4Components.h +++ b/src/c4group/C4Components.h @@ -175,7 +175,7 @@ #define C4FLS_Section "Scenario.txt|Game.txt|Landscape.bmp|Landscape.png|Sky.bmp|Sky.png|Sky.jpeg|Sky.jpg|PXS.ocb|MassMover.ocb|CtrlRec.ocb|Strings.txt|Objects.txt|Objects.c" #define C4FLS_SectionLandscape "Scenario.txt|Landscape.bmp|Landscape.png|PXS.ocb|MassMover.ocb" #define C4FLS_SectionObjects "Strings.txt|Objects.txt|Objects.c" -#define C4FLS_Def "Particle.txt|DefCore.txt|*.material|SolidMask.png|Graphics.png|Overlay.png|Normal.png|Graphics*.png|Overlay*.png|Normal*.png|*.png|*.jpg|Graphics.mesh|*.skeleton|StringTbl*.txt|Script.c|Script*.c|C4Script.c|Names*.txt|Title*.txt|ClonkNames.txt|Rank.txt|Rank*.txt|Rank.png|Desc*.txt|Author.txt|Version.txt|*.wav|*.ogg|*.ocd" +#define C4FLS_Def "*.material|Particle.txt|DefCore.txt|*.wav|*.ogg|SolidMask.png|Graphics.png|Overlay.png|Normal.png|Graphics*.png|Overlay*.png|Normal*.png|*.png|*.jpg|Graphics.mesh|*.skeleton|StringTbl*.txt|Script.c|Script*.c|C4Script.c|Names*.txt|Title*.txt|ClonkNames.txt|Rank.txt|Rank*.txt|Rank.png|Desc*.txt|Author.txt|Version.txt|*.ocd" #define C4FLS_Player "Player.txt|*.oci" #define C4FLS_Object "ObjectInfo.txt" #define C4FLS_Folder "Folder.txt|Title*.txt|Info.txt|Desc*.rtf|Title.png|Title.jpg|Icon.png|Icon.bmp|Author.txt|Version.txt|StringTbl*.txt|ParameterDefs.txt|Achv*.png|*.ocs|Loader*.bmp|Loader*.png|Loader*.jpeg|Loader*.jpg|FolderMap.txt|FolderMap.png" diff --git a/src/c4group/CStdFile.cpp b/src/c4group/CStdFile.cpp index d8d3b8262..5b6674f2f 100644 --- a/src/c4group/CStdFile.cpp +++ b/src/c4group/CStdFile.cpp @@ -53,7 +53,6 @@ CStdFile::~CStdFile() bool CStdFile::Create(const char *szFilename, bool fCompressed, bool fExecutable, bool fMemory) { - SCopy(szFilename,Name,_MAX_PATH); thread_check.Set(); // Set modes ModeWrite=true; @@ -62,10 +61,15 @@ bool CStdFile::Create(const char *szFilename, bool fCompressed, bool fExecutable { if (!(pMemory = new StdBuf())) return false; MemoryPtr = 0; + + StdStrBuf buf; + buf.Format("<%p>", pMemory); + SCopy(buf.getData(), Name, _MAX_PATH); } // Open standard file else { + SCopy(szFilename,Name,_MAX_PATH); int flags = _O_BINARY|O_CLOEXEC|O_CREAT|O_WRONLY|O_TRUNC; #ifdef _WIN32 int mode = _S_IREAD|_S_IWRITE; diff --git a/src/c4group/Resource.rc b/src/c4group/Resource.rc index 521f36706..9c6182af1 100644 --- a/src/c4group/Resource.rc +++ b/src/c4group/Resource.rc @@ -14,8 +14,8 @@ LANGUAGE LANG_GERMAN, SUBLANG_GERMAN // VS_VERSION_INFO VERSIONINFO - FILEVERSION C4XVER1,C4XVER2,C4XVER3,0 - PRODUCTVERSION C4XVER1,C4XVER2,C4XVER3,0 + FILEVERSION C4XVER1,C4XVER2,0 + PRODUCTVERSION C4XVER1,C4XVER2,0 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L diff --git a/src/control/C4GameSave.cpp b/src/control/C4GameSave.cpp index e89e0d490..d4c819a8a 100644 --- a/src/control/C4GameSave.cpp +++ b/src/control/C4GameSave.cpp @@ -62,7 +62,6 @@ bool C4GameSave::SaveCore() rC4S = Game.C4S; // Always mark current engine version rC4S.Head.C4XVer[0]=C4XVER1; rC4S.Head.C4XVer[1]=C4XVER2; - rC4S.Head.C4XVer[2]=C4XVER3; // Some flags are not to be set for initial settings: // They depend on whether specific runtime data is present, which may simply not be stored into initial // saves, because they rely on any data present and up-to-date within the scenario! @@ -297,7 +296,7 @@ void C4GameSave::WriteDescGameTime(StdStrBuf &sBuf) void C4GameSave::WriteDescEngine(StdStrBuf &sBuf) { - char ver[32]; sprintf(ver, "%d.%d.%d", (int)C4XVER1, (int)C4XVER2, (int)C4XVER3); + char ver[32]; sprintf(ver, "%d.%d", (int)C4XVER1, (int)C4XVER2); sBuf.AppendFormat(LoadResStr("IDS_DESC_VERSION"), ver); WriteDescLineFeed(sBuf); } @@ -539,7 +538,7 @@ void C4GameSaveRecord::AdjustCore(C4Scenario &rC4S) rC4S.Head.Icon=29; // default record title char buf[1024 + 1]; - sprintf(buf, "%03i %s [%d.%d.%d]", iNum, Game.ScenarioTitle.getData(), (int)C4XVER1, (int)C4XVER2, (int)C4XVER3); + sprintf(buf, "%03i %s [%d.%d]", iNum, Game.ScenarioTitle.getData(), (int)C4XVER1, (int)C4XVER2); SCopy(buf, rC4S.Head.Title, C4MaxTitle); } diff --git a/src/editor/C4ConsoleGTK.cpp b/src/editor/C4ConsoleGTK.cpp index 6b1364776..15650cef5 100644 --- a/src/editor/C4ConsoleGTK.cpp +++ b/src/editor/C4ConsoleGTK.cpp @@ -1301,7 +1301,7 @@ void C4ToolsDlg::State::UpdatePreview() *data = (dw >> 16) & 0xff; ++ data; *data = (dw >> 8 ) & 0xff; ++ data; *data = (dw ) & 0xff; ++ data; - *data = 0xff - ((dw >> 24) & 0xff); ++ data; + *data = (dw >> 24) & 0xff; ++ data; } sfcPreview->Unlock(); diff --git a/src/editor/C4ConsoleWin32.cpp b/src/editor/C4ConsoleWin32.cpp index f6b08e418..bc28d3f7c 100644 --- a/src/editor/C4ConsoleWin32.cpp +++ b/src/editor/C4ConsoleWin32.cpp @@ -305,7 +305,7 @@ class C4ToolsDlg::State: public C4ConsoleGUI::InternalState { public: HWND hDialog; - CStdGLCtx* pGLCtx; + C4Window *pPreviewWindow; friend INT_PTR CALLBACK ToolsDlgProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam); HBITMAP hbmBrush,hbmBrush2; HBITMAP hbmLine,hbmLine2; @@ -330,7 +330,7 @@ public: hbmStatic(0), hbmExact(0) { - pGLCtx = NULL; + pPreviewWindow = NULL; } void LoadBitmaps(HINSTANCE instance) @@ -366,10 +366,10 @@ public: if (hbmFill) DeleteObject(hbmFill); if (hbmIFT) DeleteObject(hbmIFT); if (hbmNoIFT) DeleteObject(hbmNoIFT); - if (pGLCtx) + if (pPreviewWindow) { - delete pGLCtx; - pGLCtx = NULL; + delete pPreviewWindow; + pPreviewWindow = NULL; } if (hDialog) DestroyWindow(hDialog); hDialog=NULL; } @@ -931,6 +931,20 @@ void C4ConsoleGUI::ClearPropertyDlg(C4PropertyDlg *dlg) } */ +// Wrapper window around preview control: Used to create GL context and target surface +class C4ConsoleGUIPreviewWindow : public C4Window +{ +public: + C4ConsoleGUIPreviewWindow(HWND hwndControl) + { + Init(C4Window::WindowKind::W_Control, &Application, NULL, NULL); + this->hWindow = this->hRenderWindow = hwndControl; + pSurface = new C4Surface(&Application, this); + } + + virtual void Close() {} +}; + bool C4ConsoleGUI::ToolsDlgOpen(C4ToolsDlg *dlg) { if (dlg->state->hDialog) return true; @@ -946,8 +960,10 @@ bool C4ConsoleGUI::ToolsDlgOpen(C4ToolsDlg *dlg) // Load bitmaps if necessary dlg->state->LoadBitmaps(Application.GetInstance()); // create target ctx for OpenGL rendering - if (pDraw && !dlg->state->pGLCtx) - dlg->state->pGLCtx = pDraw->CreateContext(GetDlgItem(dlg->state->hDialog,IDC_PREVIEW), &Application); + if (pDraw && !dlg->state->pPreviewWindow) + { + dlg->state->pPreviewWindow = new C4ConsoleGUIPreviewWindow(GetDlgItem(dlg->state->hDialog, IDC_PREVIEW)); + } // Show window RestoreWindowPosition(dlg->state->hDialog, "Property", Config.GetSubkeyPath("Console")); SetWindowPos(dlg->state->hDialog,Console.hWindow,0,0,0,0,SWP_NOSIZE | SWP_NOMOVE); @@ -1025,9 +1041,11 @@ void C4ToolsDlg::UpdateTextures() void C4ToolsDlg::NeedPreviewUpdate() { - if (!state->hDialog) return; + if (!state->hDialog || !state->pPreviewWindow) return; + + C4Surface * sfcPreview = state->pPreviewWindow->pSurface; + if (!sfcPreview) return; - C4Surface * sfcPreview; int32_t iPrvWdt,iPrvHgt; RECT rect; @@ -1036,10 +1054,12 @@ void C4ToolsDlg::NeedPreviewUpdate() iPrvWdt=rect.right-rect.left; iPrvHgt=rect.bottom-rect.top; - if (!(sfcPreview=new C4Surface(iPrvWdt,iPrvHgt))) return; + if (!sfcPreview->UpdateSize(iPrvWdt, iPrvHgt)) return; + sfcPreview->NoClip(); + if (!pDraw->PrepareRendering(sfcPreview)) return; // fill bg - pDraw->DrawBoxDw(sfcPreview,0,0,iPrvWdt-1,iPrvHgt-1,C4RGB(0x80,0x80,0x80)); + pDraw->DrawBoxDw(sfcPreview,0,0,iPrvWdt-1,iPrvHgt-1,C4RGB(0xa0,0xa0,0xa0)); BYTE bCol = 0; C4Pattern Pattern; // Sky material: sky as pattern only @@ -1071,16 +1091,7 @@ void C4ToolsDlg::NeedPreviewUpdate() Grade, bCol, Pattern, *::Landscape.GetPal()); - //Application.DDraw->AttachPrimaryPalette(sfcPreview); - - // FIXME: This activates the wrong GL context. To avoid breaking the main window display, - // FIXME: it has been disabled for the moment - //if (pGLCtx->Select()) - //{ - // pGL->Blit(sfcPreview, 0,0,(float)iPrvWdt,(float)iPrvHgt, Application.pWindow->pSurface, rect.left,rect.top, iPrvWdt,iPrvHgt); - // Application.pWindow->pSurface->PageFlip(); - //} - delete sfcPreview; + sfcPreview->PageFlip(); } void C4ToolsDlg::InitGradeCtrl() diff --git a/src/editor/C4ViewportWindow.cpp b/src/editor/C4ViewportWindow.cpp index 681a7cdde..151ee5846 100644 --- a/src/editor/C4ViewportWindow.cpp +++ b/src/editor/C4ViewportWindow.cpp @@ -90,16 +90,16 @@ bool C4Viewport::ScrollBarsByViewPosition() // Vertical scroll.fMask=SIF_ALL; scroll.nMin=0; - scroll.nMax=GBackHgt; + scroll.nMax = GBackHgt * Zoom; scroll.nPage=ViewHgt; - scroll.nPos=int(ViewY); + scroll.nPos=int(ViewY * Zoom); SetScrollInfo(pWindow->hWindow,SB_VERT,&scroll,true); // Horizontal scroll.fMask=SIF_ALL; scroll.nMin=0; - scroll.nMax=GBackWdt; + scroll.nMax=GBackWdt * Zoom; scroll.nPage=ViewWdt; - scroll.nPos=int(ViewX); + scroll.nPos = int(ViewX * Zoom); SetScrollInfo(pWindow->hWindow,SB_HORZ,&scroll,true); return true; } diff --git a/src/game/C4Application.cpp b/src/game/C4Application.cpp index 510fdf6f2..40a8d66b7 100644 --- a/src/game/C4Application.cpp +++ b/src/game/C4Application.cpp @@ -706,6 +706,7 @@ void C4Application::GameTick() Game.Execute(); // Sound SoundSystem.Execute(); + MusicSystem.Execute(); // Gamepad if (pGamePadControl) pGamePadControl->Execute(); break; diff --git a/src/game/C4Game.cpp b/src/game/C4Game.cpp index 80b150cf8..3ecfb7cb8 100644 --- a/src/game/C4Game.cpp +++ b/src/game/C4Game.cpp @@ -141,7 +141,7 @@ bool C4Game::InitDefs() if (!iDefs) { LogFatal(LoadResStr("IDS_PRC_NODEFS")); return false; } // Check def engine version (should be done immediately on def load) - iDefs=::Definitions.CheckEngineVersion(C4XVER1,C4XVER2,C4XVER3); + iDefs=::Definitions.CheckEngineVersion(C4XVER1,C4XVER2); if (iDefs>0) { LogF(LoadResStr("IDS_PRC_DEFSINVC4X"),iDefs); } // Check for unmet requirements @@ -199,9 +199,9 @@ bool C4Game::OpenScenario() { LogFatal(LoadResStr("IDS_PRC_FILEINVALID")); return false; } // Check minimum engine version - if (CompareVersion(C4S.Head.C4XVer[0],C4S.Head.C4XVer[1],C4S.Head.C4XVer[2]) > 0) + if (CompareVersion(C4S.Head.C4XVer[0],C4S.Head.C4XVer[1]) > 0) { - LogFatal(FormatString(LoadResStr("IDS_PRC_NOREQC4X"), C4S.Head.C4XVer[0],C4S.Head.C4XVer[1],C4S.Head.C4XVer[2]).getData()); + LogFatal(FormatString(LoadResStr("IDS_PRC_NOREQC4X"), C4S.Head.C4XVer[0],C4S.Head.C4XVer[1]).getData()); return false; } @@ -743,8 +743,6 @@ bool C4Game::Execute() // Returns true if the game is over EXEC_S_DR( Weather.Execute(); , WeatherStat , "WtrEx") EXEC_S_DR( Landscape.Execute(); , LandscapeStat , "LdsEx") EXEC_S_DR( Players.Execute(); , PlayersStat , "PlrEx") - //FIXME: C4Application::Execute should do this, but what about the stats? - EXEC_S_DR( Application.MusicSystem.Execute();, MusicSystemStat , "Music") EXEC_S_DR( ::Messages.Execute(); , MessagesStat , "MsgEx") EXEC_DR( MouseControl.Execute(); , "Input") @@ -1731,20 +1729,32 @@ bool C4Game::SaveData(C4Group &hGroup, bool fSaveSection, bool fSaveExact, bool // Save objects to file using system scripts int32_t objects_file_handle = ::ScriptEngine.CreateUserFile(); C4AulParSet pars(C4VInt(objects_file_handle)); - bool result = !!::ScriptEngine.GetPropList()->Call(PSF_SaveScenarioObjects, &pars); - C4AulUserFile *file = ::ScriptEngine.GetUserFile(objects_file_handle); - if (!result || !file || !file->GetFileLength()) + C4Value result_c4v(::ScriptEngine.GetPropList()->Call(PSF_SaveScenarioObjects, &pars)); + bool result = !!result_c4v; + if (result_c4v.GetType() == C4V_Nil) { - // Nothing written? Then we don't have objects. - hGroup.Delete(C4CFN_ScenarioObjectsScript); - // That's OK; not an error. - result = true; + // Function returned nil: This usually means there was a script error during object writing. + // It could also mean the scripter overloaded global func SaveScenarioObjects and returned nil. + // In either case, objects will not match landscape any more, so better fail and don't save at all. + LogF("ERROR: No valid result from global func " PSF_SaveScenarioObjects ". Saving objects failed."); } else { - // Write objects script to file! - StdStrBuf data = file->GrabFileContents(); - result = hGroup.Add(C4CFN_ScenarioObjectsScript,data,false,true); + // Function completed successfully (returning true or false) + C4AulUserFile *file = ::ScriptEngine.GetUserFile(objects_file_handle); + if (!result || !file || !file->GetFileLength()) + { + // Nothing written? Then we don't have objects. + hGroup.Delete(C4CFN_ScenarioObjectsScript); + // That's OK; not an error. + result = true; + } + else + { + // Write objects script to file! + StdStrBuf data = file->GrabFileContents(); + result = hGroup.Add(C4CFN_ScenarioObjectsScript, data, false, true); + } } ::ScriptEngine.CloseUserFile(objects_file_handle); return result; @@ -2121,7 +2131,7 @@ bool C4Game::InitGame(C4Group &hGroup, bool fLoadSection, bool fLoadSky, C4Value if (!FrameCounter) StartupPlayerCount = PlayerInfos.GetStartupCount(); // The Landscape is the last long chunk of loading time, so it's a good place to start the music fadeout - Application.MusicSystem.FadeOut(2000); + if (!fLoadSection) Application.MusicSystem.FadeOut(2000); // Landscape Log(LoadResStr("IDS_PRC_LANDSCAPE")); bool fLandscapeLoaded = false; diff --git a/src/game/C4GameVersion.h b/src/game/C4GameVersion.h index af897a3bc..756678f7a 100644 --- a/src/game/C4GameVersion.h +++ b/src/game/C4GameVersion.h @@ -23,16 +23,16 @@ struct C4GameVersion { ValidatedStdCopyStrBuf sEngineName; // status only - not used for comparison - int32_t iVer[4]; + int32_t iVer[2]; - C4GameVersion(const char *szEngine=C4ENGINENAME, int32_t iVer1=C4XVER1, int32_t iVer2=C4XVER2, int32_t iVer3=C4XVER3) - { Set(szEngine, iVer1, iVer2, iVer3); } - void Set(const char *szEngine=C4ENGINENAME, int32_t iVer1=C4XVER1, int32_t iVer2=C4XVER2, int32_t iVer3=C4XVER3) - { sEngineName.CopyValidated(szEngine); iVer[0]=iVer1; iVer[1]=iVer2; iVer[2]=iVer3; } + C4GameVersion(const char *szEngine=C4ENGINENAME, int32_t iVer1=C4XVER1, int32_t iVer2=C4XVER2) + { Set(szEngine, iVer1, iVer2); } + void Set(const char *szEngine=C4ENGINENAME, int32_t iVer1=C4XVER1, int32_t iVer2=C4XVER2) + { sEngineName.CopyValidated(szEngine); iVer[0]=iVer1; iVer[1]=iVer2; } StdStrBuf GetString() const - { return FormatString("%s %d.%d.%d", sEngineName.getData(), (int)iVer[0], (int)iVer[1], (int)iVer[2]); } + { return FormatString("%s %d.%d", sEngineName.getData(), (int)iVer[0], (int)iVer[1]); } bool operator == (const C4GameVersion &rCmp) const - { return /*sEngineName==rCmp.sEngineName &&*/ iVer[0]==rCmp.iVer[0] && iVer[1]==rCmp.iVer[1] && iVer[2]==rCmp.iVer[2]; } + { return /*sEngineName==rCmp.sEngineName &&*/ iVer[0]==rCmp.iVer[0] && iVer[1]==rCmp.iVer[1]; } void CompileFunc(StdCompiler *pComp, bool fEngineName) { @@ -43,17 +43,16 @@ struct C4GameVersion } else if (pComp->isCompiler()) sEngineName = ""; - pComp->Value(mkArrayAdapt(iVer,3,0));; + pComp->Value(mkArrayAdapt(iVer,2,0)); } }; // helper -inline int CompareVersion(int iVer1, int iVer2, int iVer3, - int iRVer1 = C4XVER1, int iRVer2 = C4XVER2, int iRVer3 = C4XVER3) +inline int CompareVersion(int iVer1, int iVer2, + int iRVer1 = C4XVER1, int iRVer2 = C4XVER2) { if (iVer1 > iRVer1) return 1; if (iVer1 < iRVer1) return -1; if (iVer2 > iRVer2) return 1; if (iVer2 < iRVer2) return -1; - if (iVer3 > iRVer3) return 1; if (iVer3 < iRVer3) return -1; return 0; } diff --git a/src/gamescript/C4GameScript.cpp b/src/gamescript/C4GameScript.cpp index bfe669044..dc05e6223 100644 --- a/src/gamescript/C4GameScript.cpp +++ b/src/gamescript/C4GameScript.cpp @@ -502,7 +502,7 @@ static bool FnSound(C4PropList * _this, C4String *szSound, bool fGlobal, Nillabl return true; } -static bool FnMusic(C4PropList * _this, C4String *szSongname, bool fLoop) +static bool FnMusic(C4PropList * _this, C4String *szSongname, bool fLoop, long iFadeTime_ms) { bool success; if (!szSongname) @@ -511,7 +511,7 @@ static bool FnMusic(C4PropList * _this, C4String *szSongname, bool fLoop) } else { - success = Application.MusicSystem.Play(FnStringPar(szSongname), !!fLoop); + success = Application.MusicSystem.Play(FnStringPar(szSongname), !!fLoop, iFadeTime_ms); } if (::Control.SyncMode()) return true; return success; @@ -523,7 +523,7 @@ static long FnMusicLevel(C4PropList * _this, long iLevel) return Application.MusicSystem.SetVolume(iLevel); } -static long FnSetPlayList(C4PropList * _this, C4String *szPlayList, Nillable iAtPlayer) +static long FnSetPlayList(C4PropList * _this, C4String *szPlayList, Nillable iAtPlayer, bool fForceSwitch, long iFadeTime_ms) { // If a player number is provided, set play list for clients where given player is local only if (!iAtPlayer.IsNil() && iAtPlayer != NO_OWNER) @@ -533,7 +533,7 @@ static long FnSetPlayList(C4PropList * _this, C4String *szPlayList, NillableLocalControl) return 0; } // Set playlist; count entries - long iFilesInPlayList = Application.MusicSystem.SetPlayList(FnStringPar(szPlayList)); + long iFilesInPlayList = Application.MusicSystem.SetPlayList(FnStringPar(szPlayList), fForceSwitch, iFadeTime_ms); Game.PlayList.Copy(FnStringPar(szPlayList)); // network/record/replay: return 0 for sync reasons if (::Control.SyncMode()) return 0; @@ -2506,6 +2506,25 @@ static bool FnGainScenarioAchievement(C4PropList * _this, C4String *achievement_ return true; } +static long FnGetPXSCount(C4PropList * _this, Nillable iMaterial, Nillable iX0, Nillable iY0, Nillable iWdt, Nillable iHgt) +{ + if (iX0.IsNil()) + { + // Search everywhere + // All materials everywhere + if (iMaterial.IsNil() || iMaterial == MNone) return ::PXS.GetCount(); + // Specific material everywhere + return ::PXS.GetCount(iMaterial); + } + else + { + // Material in area; offset by caller + int32_t x = iX0, y = iY0; + if (Object(_this)) { x += Object(_this)->GetX(); y += Object(_this)->GetY(); } + return ::PXS.GetCount(iMaterial.IsNil() ? MNone : static_cast(iMaterial), x, y, iWdt, iHgt); + } +} + extern C4ScriptConstDef C4ScriptGameConstMap[]; extern C4ScriptFnDef C4ScriptGameFnMap[]; @@ -2675,6 +2694,7 @@ void InitGameFunctionMap(C4AulScriptEngine *pEngine) AddFunc(pEngine, "PlayerObjectCommand", FnPlayerObjectCommand); AddFunc(pEngine, "EditCursor", FnEditCursor); AddFunc(pEngine, "GainScenarioAchievement", FnGainScenarioAchievement); + AddFunc(pEngine, "GetPXSCount", FnGetPXSCount); F(GetPlrKnowledge); F(GetComponent); diff --git a/src/graphics/C4Draw.cpp b/src/graphics/C4Draw.cpp index 2f4014fdd..7081d38f8 100644 --- a/src/graphics/C4Draw.cpp +++ b/src/graphics/C4Draw.cpp @@ -32,6 +32,13 @@ #include #include +// Instruct Optimus laptops to use nVidia GPU instead of integrated GPU +#if defined(_WIN32) && !defined(USE_CONSOLE) +extern "C" { + __declspec(dllexport) DWORD NvOptimusEnablement = 0x00000001; +} +#endif + // Global access pointer C4Draw *pDraw=NULL; @@ -820,17 +827,28 @@ void C4Draw::DrawQuadDw(C4Surface * sfcTarget, float *ipVtx, DWORD dwClr1, DWORD void C4Draw::DrawPatternedCircle(C4Surface * sfcDest, int x, int y, int r, BYTE col, C4Pattern & Pattern, CStdPalette &rPal) { - if (!sfcDest->Lock()) return; + bool fRenderTarget = sfcDest->IsRenderTarget(); + if (!fRenderTarget) if (!sfcDest->Lock()) return; for (int ycnt = -r; ycnt < r; ycnt++) { - int lwdt = (int) sqrt(float(r * r - ycnt * ycnt)); + int lwdt = (int)sqrt(float(r * r - ycnt * ycnt)); // Set line - for (int xcnt = x - lwdt; xcnt < x + lwdt; ++xcnt) + if (fRenderTarget) { - sfcDest->SetPixDw(xcnt, y + ycnt, Pattern.PatternClr(xcnt, y + ycnt)); + for (int xcnt = x - lwdt; xcnt < x + lwdt; ++xcnt) + { + DrawPix(sfcDest, xcnt, y + ycnt, Pattern.PatternClr(xcnt, y + ycnt)); + } + } + else + { + for (int xcnt = x - lwdt; xcnt < x + lwdt; ++xcnt) + { + sfcDest->SetPixDw(xcnt, y + ycnt, Pattern.PatternClr(xcnt, y + ycnt)); + } } } - sfcDest->Unlock(); + if (!fRenderTarget) sfcDest->Unlock(); } void C4Draw::Grayscale(C4Surface * sfcSfc, int32_t iOffset) @@ -1011,5 +1029,17 @@ void C4Draw::DrawBoxFade(C4Surface * sfcDest, float iX, float iY, float iWdt, fl void C4Draw::DrawBoxDw(C4Surface * sfcDest, int iX1, int iY1, int iX2, int iY2, DWORD dwClr) { - DrawBoxFade(sfcDest, float(iX1), float(iY1), float(iX2-iX1+1), float(iY2-iY1+1), dwClr, dwClr, dwClr, dwClr, 0,0); + if (!sfcDest->IsRenderTarget()) + { + // Box on non-render target: Emulate by setting pixels + if (!sfcDest->Lock()) return; + for (int y = iY1; y <= iY2; ++y) + for (int x = iX1; x <= iX2; ++x) + sfcDest->SetPixDw(x,y, dwClr); + sfcDest->Unlock(); + } + else + { + DrawBoxFade(sfcDest, float(iX1), float(iY1), float(iX2 - iX1 + 1), float(iY2 - iY1 + 1), dwClr, dwClr, dwClr, dwClr, 0, 0); + } } diff --git a/src/graphics/C4DrawGL.cpp b/src/graphics/C4DrawGL.cpp index 78963e5b1..7e24ea47e 100644 --- a/src/graphics/C4DrawGL.cpp +++ b/src/graphics/C4DrawGL.cpp @@ -255,8 +255,21 @@ CStdGLCtx *CStdGL::CreateContext(C4Window * pWindow, C4AbstractApp *pApp) if (!pWindow) return NULL; // create it CStdGLCtx *pCtx = new CStdGLCtx(); - if (!pMainCtx) pMainCtx = pCtx; - if (!pCtx->Init(pWindow, pApp)) + bool first_ctx = !pMainCtx; + if (first_ctx) pMainCtx = pCtx; + bool success = pCtx->Init(pWindow, pApp); + // First context: Log some information about hardware/drivers + // Must log after context creation to get valid results + if (first_ctx) + { + const char *gl_vendor = reinterpret_cast(glGetString(GL_VENDOR)); + const char *gl_renderer = reinterpret_cast(glGetString(GL_RENDERER)); + const char *gl_version = reinterpret_cast(glGetString(GL_VERSION)); + const char *gl_extensions = reinterpret_cast(glGetString(GL_EXTENSIONS)); + LogF("GL %s on %s (%s)", gl_version ? gl_version : "", gl_renderer ? gl_renderer : "", gl_vendor ? gl_vendor : ""); + // LogSilentF("GLExt: %s", gl_extensions ? gl_extensions : ""); // uncomment to flood the log with extension list + } + if (!success) { delete pCtx; Error(" gl: Error creating secondary context!"); return NULL; } diff --git a/src/graphics/C4Surface.cpp b/src/graphics/C4Surface.cpp index f6e666f55..0a993ee20 100644 --- a/src/graphics/C4Surface.cpp +++ b/src/graphics/C4Surface.cpp @@ -733,7 +733,8 @@ DWORD C4Surface::GetPixDw(int iX, int iY, bool fApplyModulation) #ifndef USE_CONSOLE if (!PrimarySurfaceLockBits) { - PrimarySurfaceLockBits = new unsigned char[Wdt*Hgt*3 + 1]; + PrimarySurfaceLockBits = new unsigned char[Wdt*Hgt*3]; + glPixelStorei(GL_PACK_ALIGNMENT, 1); glReadPixels( 0, 0, Wdt, Hgt, GL_BGR, GL_UNSIGNED_BYTE, PrimarySurfaceLockBits); PrimarySurfaceLockPitch = Wdt*3; } diff --git a/src/graphics/CSurface8.cpp b/src/graphics/CSurface8.cpp index ffa259b7d..ca166d5ab 100644 --- a/src/graphics/CSurface8.cpp +++ b/src/graphics/CSurface8.cpp @@ -88,6 +88,7 @@ bool CSurface8::Create(int iWdt, int iHgt) // create pal pPal = new CStdPalette; if (!pPal) return false; + memset(pPal->Colors, 0, sizeof(pPal->Colors)); Bits=new BYTE[Wdt*Hgt]; if (!Bits) return false; @@ -163,6 +164,7 @@ bool CSurface8::Read(CStdStream &hGroup) bool CSurface8::Save(const char *szFilename, CStdPalette *bpPalette) { C4BMP256Info BitmapInfo; + ZeroMem(&BitmapInfo, sizeof(BitmapInfo)); BitmapInfo.Set(Wdt,Hgt, bpPalette ? bpPalette : pPal); // Create file & write info @@ -173,7 +175,8 @@ bool CSurface8::Save(const char *szFilename, CStdPalette *bpPalette) { return false; } // Write lines - char bpEmpty[4]; int iEmpty = DWordAligned(Wdt)-Wdt; + char bpEmpty[4]; ZeroMem(bpEmpty, 4); + const int iEmpty = DWordAligned(Wdt)-Wdt; for (int cnt=Hgt-1; cnt>=0; cnt--) { if (!hFile.Write(Bits+(Pitch*cnt),Wdt)) diff --git a/src/gui/C4Folder.cpp b/src/gui/C4Folder.cpp index b540d955f..d96ce1430 100644 --- a/src/gui/C4Folder.cpp +++ b/src/gui/C4Folder.cpp @@ -30,13 +30,11 @@ void C4FolderHead::Default() { Index = 0; - Sort[0] = 0; } void C4FolderHead::CompileFunc(StdCompiler *pComp) { pComp->Value(mkNamingAdapt(Index, "Index", 0)); - pComp->Value(mkNamingAdapt(mkStringAdaptMA(Sort), "Sort", "")); } //=================== C4Folder ====================== diff --git a/src/gui/C4Folder.h b/src/gui/C4Folder.h index ed24b3c6e..a302ad2d4 100644 --- a/src/gui/C4Folder.h +++ b/src/gui/C4Folder.h @@ -19,13 +19,10 @@ #ifndef INC_C4Folder #define INC_C4Folder -const int C4MaxFolderSort = 4096; - class C4FolderHead { public: int32_t Index; // Folder index in scenario selection dialog - char Sort[C4MaxFolderSort + 1]; // Folder-defined group sort list (to be used for folder maps) public: void Default(); void CompileFunc(StdCompiler *pComp); diff --git a/src/gui/C4StartupNetDlg.cpp b/src/gui/C4StartupNetDlg.cpp index cd6a2d90b..ab60f3636 100644 --- a/src/gui/C4StartupNetDlg.cpp +++ b/src/gui/C4StartupNetDlg.cpp @@ -864,7 +864,7 @@ void C4StartupNetDlg::UpdateMasterserver() else { pMasterserverClient = new C4StartupNetListEntry(pGameSelList, NULL, this); - StdStrBuf strVersion; strVersion.Format("%d.%d.%d", C4XVER1, C4XVER2, C4XVER3); + StdStrBuf strVersion; strVersion.Format("%d.%d", C4XVER1, C4XVER2); StdStrBuf strQuery; strQuery.Format("%s?version=%s&platform=%s", Config.Network.GetLeagueServerAddress(), strVersion.getData(), C4_OS); pMasterserverClient->SetRefQuery(strQuery.getData(), C4StartupNetListEntry::NRQT_Masterserver); } @@ -1217,7 +1217,7 @@ void C4StartupNetDlg::OnReferenceEntryAdd(C4StartupNetListEntry *pEntry) void C4StartupNetDlg::CheckVersionUpdate() { #ifdef WITH_AUTOMATIC_UPDATE - StdStrBuf strVersion; strVersion.Format("%d.%d.%d", C4XVER1, C4XVER2, C4XVER3); + StdStrBuf strVersion; strVersion.Format("%d.%d", C4XVER1, C4XVER2); StdStrBuf strQuery; strQuery.Format("%s?version=%s&platform=%s&action=version", Config.Network.UpdateServerAddress, strVersion.getData(), C4_OS); if (pUpdateClient.Init() && pUpdateClient.SetServer(strQuery.getData()) && pUpdateClient.QueryUpdateURL()) diff --git a/src/gui/C4UpdateDlg.cpp b/src/gui/C4UpdateDlg.cpp index 3d1ddfb6c..6ff48ab0b 100644 --- a/src/gui/C4UpdateDlg.cpp +++ b/src/gui/C4UpdateDlg.cpp @@ -296,7 +296,7 @@ bool C4UpdateDlg::ApplyUpdate(const char *strUpdateFile, bool fDeleteUpdate, C4G bool C4UpdateDlg::IsValidUpdate(const char *szVersion) { - StdStrBuf strVersion; strVersion.Format("%d.%d.%d", C4XVER1, C4XVER2, C4XVER3); + StdStrBuf strVersion; strVersion.Format("%d.%d", C4XVER1, C4XVER2); if (szVersion == NULL || strlen(szVersion) == 0) return false; return strcmp(szVersion,strVersion.getData()) != 0; } @@ -319,7 +319,7 @@ bool C4UpdateDlg::CheckForUpdates(C4GUI::Screen *pScreen, bool fAutomatic) C4Network2UpdateClient UpdateClient; bool fSuccess = false, fAborted = false; - StdStrBuf strVersion; strVersion.Format("%d.%d.%d", C4XVER1, C4XVER2, C4XVER3); + StdStrBuf strVersion; strVersion.Format("%d.%d", C4XVER1, C4XVER2); StdStrBuf strQuery; strQuery.Format("%s?version=%s&platform=%s&action=version", Config.Network.UpdateServerAddress, strVersion.getData(), C4_OS); if (UpdateClient.Init() && UpdateClient.SetServer(strQuery.getData()) && UpdateClient.QueryUpdateURL()) { diff --git a/src/landscape/C4PXS.cpp b/src/landscape/C4PXS.cpp index 974d46213..7c67e842e 100644 --- a/src/landscape/C4PXS.cpp +++ b/src/landscape/C4PXS.cpp @@ -501,4 +501,31 @@ void C4PXSSystem::Delete(C4PXS *pPXS) iChunkPXS[cnt]--; } +int32_t C4PXSSystem::GetCount(int32_t mat) const +{ + // count PXS of given material + int32_t result = 0; + for (size_t cnt = 0; cnt < PXSMaxChunk; cnt++) if (Chunk[cnt] && iChunkPXS[cnt]) + { + C4PXS *pxp = Chunk[cnt]; + for (size_t cnt2 = 0; cnt2 < PXSChunkSize; cnt2++, pxp++) if (pxp->Mat == mat) ++result; + } + return result; +} + +int32_t C4PXSSystem::GetCount(int32_t mat, int32_t x, int32_t y, int32_t wdt, int32_t hgt) const +{ + // count PXS of given material in given area + int32_t result = 0; + for (size_t cnt = 0; cnt < PXSMaxChunk; cnt++) if (Chunk[cnt] && iChunkPXS[cnt]) + { + C4PXS *pxp = Chunk[cnt]; + for (size_t cnt2 = 0; cnt2 < PXSChunkSize; cnt2++, pxp++) + if (pxp->Mat != MNone) + if (pxp->Mat == mat || mat == MNone) + if (Inside(pxp->x, x, x + wdt - 1) && Inside(pxp->y, y, y + hgt - 1)) ++result; + } + return result; +} + C4PXSSystem PXS; diff --git a/src/landscape/C4PXS.h b/src/landscape/C4PXS.h index 9170e55d0..920d6230c 100644 --- a/src/landscape/C4PXS.h +++ b/src/landscape/C4PXS.h @@ -58,6 +58,9 @@ public: bool Create(int32_t mat, C4Real ix, C4Real iy, C4Real ixdir=Fix0, C4Real iydir=Fix0); bool Load(C4Group &hGroup); bool Save(C4Group &hGroup); + int32_t GetCount() const { return Count; } // count all PXS + int32_t GetCount(int32_t mat) const; // count PXS of given material + int32_t GetCount(int32_t mat, int32_t x, int32_t y, int32_t wdt, int32_t hgt) const; // count PXS of given material in given area. mat==-1 for all materials. protected: C4PXS *New(); }; diff --git a/src/landscape/C4Particles.cpp b/src/landscape/C4Particles.cpp index 0eadc4753..718071694 100644 --- a/src/landscape/C4Particles.cpp +++ b/src/landscape/C4Particles.cpp @@ -1273,7 +1273,7 @@ C4ParticleSystem::~C4ParticleSystem() CalculateNextStep(); for (std::vector::iterator iter = multiDrawElementsIndexArray.begin(); iter != multiDrawElementsIndexArray.end(); ++iter) - delete (*iter); + delete[] (*iter); } void C4ParticleSystem::DoInit() diff --git a/src/landscape/C4Particles.h b/src/landscape/C4Particles.h index f2d4597d8..7daaa16ce 100644 --- a/src/landscape/C4Particles.h +++ b/src/landscape/C4Particles.h @@ -444,9 +444,9 @@ private: std::vector multiDrawElementsIndexArray; std::list particleLists; - CalculationThread calculationThread; CStdCSec particleListAccessMutex; CStdEvent frameCounterAdvancedEvent; + CalculationThread calculationThread; int currentSimulationTime; // in game time diff --git a/src/landscape/C4Scenario.cpp b/src/landscape/C4Scenario.cpp index b826747ce..20e0019fa 100644 --- a/src/landscape/C4Scenario.cpp +++ b/src/landscape/C4Scenario.cpp @@ -142,7 +142,7 @@ void C4SHead::Default() Origin.Clear(); Icon=18; *Title = *Loader = *Font = *Engine = *MissionAccess = '\0'; - C4XVer[0] = C4XVer[1] = C4XVer[2] = 0; + C4XVer[0] = C4XVer[1] = 0; Difficulty = StartupPlayerCount = RandomSeed = 0; SaveGame = Replay = NoInitialize = false; Film = 0; diff --git a/src/landscape/C4Scenario.h b/src/landscape/C4Scenario.h index 9ad4d3382..7185870e8 100644 --- a/src/landscape/C4Scenario.h +++ b/src/landscape/C4Scenario.h @@ -61,7 +61,7 @@ enum C4SFilmMode class C4SHead { public: - int32_t C4XVer[3]; + int32_t C4XVer[2]; char Title[C4MaxTitle+1]; char Loader[C4MaxTitle+1]; char Font[C4MaxTitle+1]; // scenario specific font; may be 0 diff --git a/src/lib/StdMesh.cpp b/src/lib/StdMesh.cpp index 55f668f89..05bf5d875 100644 --- a/src/lib/StdMesh.cpp +++ b/src/lib/StdMesh.cpp @@ -355,12 +355,41 @@ StdMeshAnimation& StdMeshAnimation::operator=(const StdMeshAnimation& other) return *this; } + +StdMeshSkeleton::StdMeshSkeleton() +{ +} + +StdMeshSkeleton::~StdMeshSkeleton() +{ + for (unsigned int i = 0; i < Bones.size(); ++i) + delete Bones[i]; +} + +void StdMeshSkeleton::AddMasterBone(StdMeshBone *bone) +{ + bone->Index = Bones.size(); // Remember index in master bone table + Bones.push_back(bone); + for (unsigned int i = 0; i < bone->Children.size(); ++i) + AddMasterBone(bone->Children[i]); +} + +const StdMeshBone* StdMeshSkeleton::GetBoneByName(const StdStrBuf& name) const +{ + // Lookup parent bone + for (unsigned int i = 0; i < Bones.size(); ++i) + if (Bones[i]->Name == name) + return Bones[i]; + + return NULL; +} + StdSubMesh::StdSubMesh(): Material(NULL) { } -StdMesh::StdMesh() +StdMesh::StdMesh() : Skeleton(new StdMeshSkeleton) { BoundingBox.x1 = BoundingBox.y1 = BoundingBox.z1 = 0.0f; BoundingBox.x2 = BoundingBox.y2 = BoundingBox.z2 = 0.0f; @@ -369,26 +398,6 @@ StdMesh::StdMesh() StdMesh::~StdMesh() { - for (unsigned int i = 0; i < Bones.size(); ++i) - delete Bones[i]; -} - -void StdMesh::AddMasterBone(StdMeshBone* bone) -{ - bone->Index = Bones.size(); // Remember index in master bone table - Bones.push_back(bone); - for (unsigned int i = 0; i < bone->Children.size(); ++i) - AddMasterBone(bone->Children[i]); -} - -const StdMeshBone* StdMesh::GetBoneByName(const StdStrBuf& name) const -{ - // Lookup parent bone - for (unsigned int i = 0; i < Bones.size(); ++i) - if (Bones[i]->Name == name) - return Bones[i]; - - return NULL; } const StdMeshAnimation* StdMesh::GetAnimationByName(const StdStrBuf& name) const @@ -408,13 +417,13 @@ void StdMesh::MirrorAnimation(const StdStrBuf& name, const StdMeshAnimation& ani new_anim.Name = name2; // Go through all bones - for(unsigned int i = 0; i < GetNumBones(); ++i) + for(unsigned int i = 0; i < Skeleton->GetNumBones(); ++i) { - const StdMeshBone& bone = GetBone(i); + const StdMeshBone& bone = Skeleton->GetBone(i); StdCopyStrBuf other_bone_name(bone.Name); if(MirrorName(other_bone_name)) { - const StdMeshBone* other_bone = GetBoneByName(other_bone_name); + const StdMeshBone* other_bone = Skeleton->GetBoneByName(other_bone_name); if(!other_bone) throw std::runtime_error(std::string("No counterpart for bone ") + bone.Name.getData() + " found"); @@ -711,13 +720,13 @@ void StdMeshInstance::AnimationNode::CompileFunc(StdCompiler* pComp, const StdMe { StdCopyStrBuf bone_name; pComp->Value(mkNamingAdapt(toC4CStrBuf(bone_name), "Bone")); - const StdMeshBone* bone = Mesh->GetBoneByName(bone_name); + const StdMeshBone* bone = Mesh->GetSkeleton().GetBoneByName(bone_name); if(!bone) pComp->excCorrupt("No such bone: \"%s\"", bone_name.getData()); Custom.BoneIndex = bone->Index; } else { - pComp->Value(mkNamingAdapt(mkParAdapt(mkDecompileAdapt(Mesh->GetBone(Custom.BoneIndex).Name), StdCompiler::RCT_All), "Bone")); + pComp->Value(mkNamingAdapt(mkParAdapt(mkDecompileAdapt(Mesh->GetSkeleton().GetBone(Custom.BoneIndex).Name), StdCompiler::RCT_All), "Bone")); } pComp->Value(mkNamingAdapt(mkTransformAdapt(*Custom.Transformation), "Transformation")); @@ -793,6 +802,7 @@ StdMeshInstance::AttachedMesh::AttachedMesh(unsigned int number, StdMeshInstance ParentBone(parent_bone), ChildBone(child_bone), AttachTrans(transform), Flags(flags), FinalTransformDirty(true) { + MapBonesOfChildToParent(parent->GetMesh().GetSkeleton(), child->GetMesh().GetSkeleton()); } StdMeshInstance::AttachedMesh::~AttachedMesh() @@ -804,7 +814,7 @@ StdMeshInstance::AttachedMesh::~AttachedMesh() bool StdMeshInstance::AttachedMesh::SetParentBone(const StdStrBuf& bone) { - const StdMeshBone* bone_obj = Parent->GetMesh().GetBoneByName(bone); + const StdMeshBone* bone_obj = Parent->GetMesh().GetSkeleton().GetBoneByName(bone); if (!bone_obj) return false; ParentBone = bone_obj->Index; @@ -814,7 +824,7 @@ bool StdMeshInstance::AttachedMesh::SetParentBone(const StdStrBuf& bone) bool StdMeshInstance::AttachedMesh::SetChildBone(const StdStrBuf& bone) { - const StdMeshBone* bone_obj = Child->GetMesh().GetBoneByName(bone); + const StdMeshBone* bone_obj = Child->GetMesh().GetSkeleton().GetBoneByName(bone); if (!bone_obj) return false; ChildBone = bone_obj->Index; @@ -838,8 +848,8 @@ void StdMeshInstance::AttachedMesh::CompileFunc(StdCompiler* pComp, DenumeratorF const StdBitfieldEntry AM_Entries[] = { + { "MatchSkeleton", AM_MatchSkeleton }, { "DrawBefore", AM_DrawBefore }, - { NULL, 0 } }; @@ -858,6 +868,11 @@ void StdMeshInstance::AttachedMesh::CompileFunc(StdCompiler* pComp, DenumeratorF void StdMeshInstance::AttachedMesh::DenumeratePointers() { ChildDenumerator->DenumeratePointers(this); + + assert(Child != NULL); + Child->AttachParent = this; + + MapBonesOfChildToParent(Parent->GetMesh().GetSkeleton(), Child->GetMesh().GetSkeleton()); } bool StdMeshInstance::AttachedMesh::ClearPointers(class C4Object* pObj) @@ -865,9 +880,39 @@ bool StdMeshInstance::AttachedMesh::ClearPointers(class C4Object* pObj) return ChildDenumerator->ClearPointers(pObj); } +void StdMeshInstance::AttachedMesh::MapBonesOfChildToParent(const StdMeshSkeleton& parent_skeleton, const StdMeshSkeleton& child_skeleton) +{ + // not necessary if we do not match anyway. + if (!(Flags & AM_MatchSkeleton)) return; + + // clear array to avoid filling it twice + MatchedBoneInParentSkeleton.clear(); + + // find matching bones names in both skeletons + for (unsigned int i = 0; i < child_skeleton.GetNumBones(); ++i) + { + int parent_bone_index = -1; // instantiate with invalid index == no match + + for (unsigned int j = 0; j < parent_skeleton.GetNumBones(); ++j) + { + // start searching at the same index + int sample_index = (i + j) % parent_skeleton.GetNumBones(); + + if (parent_skeleton.GetBone(sample_index).Name == child_skeleton.GetBone(i).Name) + { + parent_bone_index = sample_index; + break; + } + } + + // add valid or invalid mapped index to list of mapped bones + MatchedBoneInParentSkeleton.push_back(parent_bone_index); + } +} + StdMeshInstance::StdMeshInstance(const StdMesh& mesh, float completion): Mesh(&mesh), SharedVertices(mesh.GetSharedVertices().size()), Completion(completion), - BoneTransforms(Mesh->GetNumBones(), StdMeshMatrix::Identity()), + BoneTransforms(Mesh->GetSkeleton().GetNumBones(), StdMeshMatrix::Identity()), SubMeshInstances(Mesh->GetNumSubMeshes()), AttachParent(NULL), BoneTransformsDirty(false) { @@ -1016,7 +1061,7 @@ void StdMeshInstance::StopAnimation(AnimationNode* node) while (!AnimationNodes.empty() && AnimationNodes.back() == NULL) AnimationNodes.erase(AnimationNodes.end()-1); - BoneTransformsDirty = true; + SetBoneTransformsDirty(true); } StdMeshInstance::AnimationNode* StdMeshInstance::GetAnimationNodeByNumber(unsigned int number) @@ -1040,14 +1085,14 @@ void StdMeshInstance::SetAnimationPosition(AnimationNode* node, ValueProvider* p position->Value = BoundBy(position->Value, Fix0, ftofix(node->Leaf.Animation->Length)); - BoneTransformsDirty = true; + SetBoneTransformsDirty(true); } void StdMeshInstance::SetAnimationBoneTransform(AnimationNode* node, const StdMeshTransformation& trans) { assert(node->GetType() == AnimationNode::CustomNode); *node->Custom.Transformation = trans; - BoneTransformsDirty = true; + SetBoneTransformsDirty(true); } void StdMeshInstance::SetAnimationWeight(AnimationNode* node, ValueProvider* weight) @@ -1057,7 +1102,7 @@ void StdMeshInstance::SetAnimationWeight(AnimationNode* node, ValueProvider* wei weight->Value = BoundBy(weight->Value, Fix0, itofix(1)); - BoneTransformsDirty = true; + SetBoneTransformsDirty(true); } void StdMeshInstance::ExecuteAnimation(float dt) @@ -1131,8 +1176,8 @@ StdMeshInstance::AttachedMesh* StdMeshInstance::AttachMesh(StdMeshInstance& inst if ((*iter)->Number >= number) number = (*iter)->Number + 1; - const StdMeshBone* parent_bone_obj = Mesh->GetBoneByName(parent_bone); - const StdMeshBone* child_bone_obj = instance.Mesh->GetBoneByName(child_bone); + const StdMeshBone* parent_bone_obj = Mesh->GetSkeleton().GetBoneByName(parent_bone); + const StdMeshBone* child_bone_obj = instance.Mesh->GetSkeleton().GetBoneByName(child_bone); if (!parent_bone_obj || !child_bone_obj) return NULL; attach = new AttachedMesh(number, this, &instance, own_child, auto_denumerator.release(), parent_bone_obj->Index, child_bone_obj->Index, transformation, flags); @@ -1181,6 +1226,23 @@ void StdMeshInstance::SetMaterial(size_t i, const StdMeshMaterial& material) std::stable_sort(SubMeshInstancesOrdered.begin(), SubMeshInstancesOrdered.end(), StdMeshSubMeshInstanceVisibilityCmpPred()); } +const StdMeshMatrix& StdMeshInstance::GetBoneTransform(size_t i) const +{ + if ((AttachParent != NULL) && (AttachParent->GetFlags() & AM_MatchSkeleton)) + { + assert(i < AttachParent->MatchedBoneInParentSkeleton.size()); + + int parent_bone_index = AttachParent->MatchedBoneInParentSkeleton[i]; + + if (parent_bone_index > -1) + { + return AttachParent->Parent->BoneTransforms[i]; + } + } + + return BoneTransforms[i]; +} + bool StdMeshInstance::UpdateBoneTransforms() { bool was_dirty = BoneTransformsDirty; @@ -1193,7 +1255,7 @@ bool StdMeshInstance::UpdateBoneTransforms() { StdMeshTransformation Transformation; - const StdMeshBone& bone = Mesh->GetBone(i); + const StdMeshBone& bone = Mesh->GetSkeleton().GetBone(i); const StdMeshBone* parent = bone.GetParent(); assert(!parent || parent->Index < i); @@ -1262,17 +1324,17 @@ bool StdMeshInstance::UpdateBoneTransforms() // (saves per-instance memory, but requires recomputation if the animation does not change). // TODO: We might also be able to cache child inverse, and only recomupte it if // child bone transforms are dirty (saves matrix inversion for unanimated attach children). - attach->FinalTrans = BoneTransforms[attach->ParentBone] - * StdMeshMatrix::Transform(Mesh->GetBone(attach->ParentBone).Transformation) - * attach->AttachTrans - * StdMeshMatrix::Transform(attach->Child->Mesh->GetBone(attach->ChildBone).InverseTransformation) - * StdMeshMatrix::Inverse(attach->Child->BoneTransforms[attach->ChildBone]); + attach->FinalTrans = GetBoneTransform(attach->ParentBone) + * StdMeshMatrix::Transform(Mesh->GetSkeleton().GetBone(attach->ParentBone).Transformation) + * attach->AttachTrans + * StdMeshMatrix::Transform(attach->Child->Mesh->GetSkeleton().GetBone(attach->ChildBone).InverseTransformation) + * StdMeshMatrix::Inverse(attach->Child->GetBoneTransform(attach->ChildBone)); attach->FinalTransformDirty = false; } } - BoneTransformsDirty = false; + SetBoneTransformsDirty(false); return was_dirty; } @@ -1305,7 +1367,7 @@ void StdMeshInstance::CompileFunc(StdCompiler* pComp, AttachedMesh::DenumeratorF assert(!AttachParent); assert(AttachChildren.empty()); assert(AnimationStack.empty()); - BoneTransformsDirty = true; + SetBoneTransformsDirty(true); bool valid; pComp->Value(mkNamingAdapt(valid, "Valid")); @@ -1397,7 +1459,9 @@ void StdMeshInstance::DenumeratePointers() AnimationNodes[i]->DenumeratePointers(); for(unsigned int i = 0; i < AttachChildren.size(); ++i) + { AttachChildren[i]->DenumeratePointers(); + } } void StdMeshInstance::ClearPointers(class C4Object* pObj) @@ -1502,7 +1566,7 @@ void StdMeshInstance::InsertAnimationNode(AnimationNode* node, int slot, Animati *iter = node; } - BoneTransformsDirty = true; + SetBoneTransformsDirty(true); } bool StdMeshInstance::ExecuteAnimationNode(AnimationNode* node) @@ -1559,7 +1623,7 @@ bool StdMeshInstance::ExecuteAnimationNode(AnimationNode* node) if (provider->Value != old_value) { provider->Value = BoundBy(provider->Value, min, max); - BoneTransformsDirty = true; + SetBoneTransformsDirty(true); } if (node->GetType() == AnimationNode::LinearInterpolationNode) @@ -1598,7 +1662,7 @@ void StdMeshInstance::ApplyBoneTransformToVertices(const std::vectorGetFlags() & AM_MatchSkeleton) + { + attach->Child->SetBoneTransformsDirty(value); + } + } + } +} diff --git a/src/lib/StdMesh.h b/src/lib/StdMesh.h index 2ede87f4d..768dba92f 100644 --- a/src/lib/StdMesh.h +++ b/src/lib/StdMesh.h @@ -22,8 +22,9 @@ class StdMeshBone { - friend class StdMesh; + friend class StdMeshSkeleton; friend class StdMeshLoader; + public: StdMeshBone() {} @@ -38,9 +39,6 @@ public: const StdMeshBone* GetParent() const { return Parent; } - const StdMeshBone& GetChild(size_t i) const { return *Children[i]; } - size_t GetNumChildren() const { return Children.size(); } - private: StdMeshBone* Parent; // Parent bone std::vector Children; // Children. Not owned. @@ -49,6 +47,28 @@ private: StdMeshBone& operator=(const StdMeshBone&); // non-assignable }; +class StdMeshSkeleton +{ + friend class StdMeshLoader; + friend class StdMesh; + + StdMeshSkeleton(); +public: + ~StdMeshSkeleton(); + + const StdMeshBone& GetBone(size_t i) const { return *Bones[i]; } + size_t GetNumBones() const { return Bones.size(); } + const StdMeshBone* GetBoneByName(const StdStrBuf& name) const; + +private: + void AddMasterBone(StdMeshBone* bone); + + StdMeshSkeleton(const StdMeshSkeleton& other); // non-copyable + StdMeshSkeleton& operator=(const StdMeshSkeleton& other); // non-assignable + + std::vector Bones; // Master Bone Table +}; + class StdMeshVertexBoneAssignment { public: @@ -155,9 +175,7 @@ public: const std::vector& GetSharedVertices() const { return SharedVertices; } - const StdMeshBone& GetBone(size_t i) const { return *Bones[i]; } - size_t GetNumBones() const { return Bones.size(); } - const StdMeshBone* GetBoneByName(const StdStrBuf& name) const; + const StdMeshSkeleton& GetSkeleton() const { return *Skeleton; } const StdMeshAnimation* GetAnimationByName(const StdStrBuf& name) const; @@ -169,7 +187,6 @@ public: void PostInit(); private: - void AddMasterBone(StdMeshBone* bone); StdMesh(const StdMesh& other); // non-copyable StdMesh& operator=(const StdMesh& other); // non-assignable @@ -177,7 +194,7 @@ private: std::vector SharedVertices; std::vector SubMeshes; - std::vector Bones; // Master Bone Table + std::shared_ptr Skeleton; // Skeleton std::map Animations; @@ -273,8 +290,9 @@ public: typedef StdSubMeshInstance::FaceOrdering FaceOrdering; enum AttachMeshFlags { - AM_None = 0, - AM_DrawBefore = 1 << 0 + AM_None = 0, + AM_DrawBefore = 1 << 0, + AM_MatchSkeleton = 1 << 1 }; // Provider for animation position or weight. @@ -476,6 +494,10 @@ public: // Cache final attach transformation, updated in UpdateBoneTransform StdMeshMatrix FinalTrans; // NoSave bool FinalTransformDirty; // NoSave; Whether FinalTrans is up to date or not + + std::vector MatchedBoneInParentSkeleton; // Only filled if AM_MatchSkeleton is set + + void MapBonesOfChildToParent(const StdMeshSkeleton& parent_skeleton, const StdMeshSkeleton& child_skeleton); }; typedef std::vector AttachedMeshList; @@ -532,7 +554,7 @@ public: // Set material of submesh i. void SetMaterial(size_t i, const StdMeshMaterial& material); - const StdMeshMatrix& GetBoneTransform(size_t i) const { return BoneTransforms[i]; } + const StdMeshMatrix& GetBoneTransform(size_t i) const; // Update bone transformation matrices, vertex positions and final attach transformations of attached children. // This is called recursively for attached children, so there is no need to call it on attached children only @@ -566,6 +588,7 @@ protected: void InsertAnimationNode(AnimationNode* node, int slot, AnimationNode* sibling, ValueProvider* weight); bool ExecuteAnimationNode(AnimationNode* node); void ApplyBoneTransformToVertices(const std::vector& mesh_vertices, std::vector& instance_vertices); + void SetBoneTransformsDirty(bool value); const StdMesh* Mesh; diff --git a/src/lib/StdMeshLoaderBinary.cpp b/src/lib/StdMeshLoaderBinary.cpp index c795f23a7..0e47395bd 100644 --- a/src/lib/StdMeshLoaderBinary.cpp +++ b/src/lib/StdMeshLoaderBinary.cpp @@ -218,9 +218,9 @@ StdMesh *StdMeshLoader::LoadMeshBinary(const char *src, size_t length, const Std // Build bone handle->index quick access table std::map bone_lookup; - for (size_t i = 0; i < mesh->GetNumBones(); ++i) + for (size_t i = 0; i < mesh->GetSkeleton().GetNumBones(); ++i) { - bone_lookup[mesh->GetBone(i).ID] = i; + bone_lookup[mesh->GetSkeleton().GetBone(i).ID] = i; } // Read submeshes @@ -345,7 +345,7 @@ void StdMeshLoader::LoadSkeletonBinary(StdMesh *mesh, const char *src, size_t si if (!it->second->Parent) { master = it->second; - mesh->AddMasterBone(master); + mesh->Skeleton->AddMasterBone(master); } } if (!master) @@ -356,9 +356,9 @@ void StdMeshLoader::LoadSkeletonBinary(StdMesh *mesh, const char *src, size_t si // Build handle->index quick access table std::map handle_lookup; - for (size_t i = 0; i < mesh->GetNumBones(); ++i) + for (size_t i = 0; i < mesh->GetSkeleton().GetNumBones(); ++i) { - handle_lookup[mesh->GetBone(i).ID] = i; + handle_lookup[mesh->GetSkeleton().GetBone(i).ID] = i; } // Fixup animations @@ -367,10 +367,10 @@ void StdMeshLoader::LoadSkeletonBinary(StdMesh *mesh, const char *src, size_t si StdMeshAnimation &anim = mesh->Animations[StdCopyStrBuf(canim.name.c_str())]; anim.Name = canim.name.c_str(); anim.Length = canim.duration; - anim.Tracks.resize(mesh->GetNumBones()); + anim.Tracks.resize(mesh->GetSkeleton().GetNumBones()); BOOST_FOREACH(Ogre::Skeleton::ChunkAnimationTrack &catrack, canim.tracks) { - const StdMeshBone &bone = mesh->GetBone(handle_lookup[catrack.bone]); + const StdMeshBone &bone = mesh->GetSkeleton().GetBone(handle_lookup[catrack.bone]); StdMeshTrack *&track = anim.Tracks[bone.Index]; if (track != NULL) throw Ogre::Skeleton::MultipleBoneTracks(); @@ -386,7 +386,7 @@ void StdMeshLoader::LoadSkeletonBinary(StdMesh *mesh, const char *src, size_t si } // Fixup bone transforms - BOOST_FOREACH(StdMeshBone *bone, mesh->Bones) + BOOST_FOREACH(StdMeshBone *bone, mesh->GetSkeleton().Bones) { if (bone->Parent) { diff --git a/src/lib/StdMeshLoaderXml.cpp b/src/lib/StdMeshLoaderXml.cpp index 4cf9e30e7..ea4e81e04 100644 --- a/src/lib/StdMeshLoaderXml.cpp +++ b/src/lib/StdMeshLoaderXml.cpp @@ -213,9 +213,9 @@ void StdMeshLoader::StdMeshXML::LoadBoneAssignments(StdMesh& mesh, std::vectorID == BoneID) - bone = mesh.Bones[i]; + for (unsigned int i = 0; !bone && i < mesh.GetSkeleton().GetNumBones(); ++i) + if (mesh.GetSkeleton().Bones[i]->ID == BoneID) + bone = mesh.GetSkeleton().Bones[i]; if (!bone) Error(FormatString("There is no such bone with ID %d", BoneID), vertexboneassignment_elem); @@ -386,7 +386,7 @@ StdMesh *StdMeshLoader::LoadMeshXml(const char* xml_data, size_t size, const Std // Fill master bone table in hierarchical order: for (unsigned int i = 0; i < bones.size(); ++i) if (bones[i]->Parent == NULL) - mesh->AddMasterBone(bones[i]); + mesh->Skeleton->AddMasterBone(bones[i]); // Vertex<->Bone assignments for shared geometry if(sharedgeometry_elem) @@ -420,16 +420,16 @@ StdMesh *StdMeshLoader::LoadMeshXml(const char* xml_data, size_t size, const Std StdMeshAnimation& animation = mesh->Animations.insert(std::make_pair(name, StdMeshAnimation())).first->second; animation.Name = name; animation.Length = skeleton.RequireFloatAttribute(animation_elem, "length"); - animation.Tracks.resize(mesh->Bones.size()); + animation.Tracks.resize(mesh->GetSkeleton().GetNumBones()); TiXmlElement* tracks_elem = skeleton.RequireFirstChild(animation_elem, "tracks"); for (TiXmlElement* track_elem = tracks_elem->FirstChildElement("track"); track_elem != NULL; track_elem = track_elem->NextSiblingElement("track")) { const char* bone_name = skeleton.RequireStrAttribute(track_elem, "bone"); StdMeshBone* bone = NULL; - for (unsigned int i = 0; !bone && i < mesh->Bones.size(); ++i) - if (mesh->Bones[i]->Name == bone_name) - bone = mesh->Bones[i]; + for (unsigned int i = 0; !bone && i < mesh->GetSkeleton().GetNumBones(); ++i) + if (mesh->GetSkeleton().Bones[i]->Name == bone_name) + bone = mesh->GetSkeleton().Bones[i]; if (!bone) skeleton.Error(FormatString("There is no such bone with name '%s'", bone_name), track_elem); if (animation.Tracks[bone->Index] != NULL) skeleton.Error(FormatString("There is already a track for bone '%s' in animation '%s'", bone_name, animation.Name.getData()), track_elem); @@ -504,14 +504,14 @@ StdMesh *StdMeshLoader::LoadMeshXml(const char* xml_data, size_t size, const Std // Apply parent transformation to each bone transformation. We need to // do this late since animation keyframe computation needs the bone // transformations, not bone+parent. - for (unsigned int i = 0; i < mesh->Bones.size(); ++i) + for (unsigned int i = 0; i < mesh->GetSkeleton().GetNumBones(); ++i) { - if (mesh->Bones[i]->Parent) + if (mesh->GetSkeleton().Bones[i]->Parent) { // Apply parent transformation - mesh->Bones[i]->Transformation = mesh->Bones[i]->Parent->Transformation * mesh->Bones[i]->Transformation; + mesh->GetSkeleton().Bones[i]->Transformation = mesh->GetSkeleton().Bones[i]->Parent->Transformation * mesh->GetSkeleton().Bones[i]->Transformation; // Update inverse - mesh->Bones[i]->InverseTransformation = StdMeshTransformation::Inverse(mesh->Bones[i]->Transformation); + mesh->GetSkeleton().Bones[i]->InverseTransformation = StdMeshTransformation::Inverse(mesh->GetSkeleton().Bones[i]->Transformation); } } diff --git a/src/lib/StdMeshUpdate.cpp b/src/lib/StdMeshUpdate.cpp index 555701cfc..612952e6c 100644 --- a/src/lib/StdMeshUpdate.cpp +++ b/src/lib/StdMeshUpdate.cpp @@ -80,13 +80,13 @@ void StdMeshMaterialUpdate::Add(const StdMeshMaterial* material) } StdMeshUpdate::StdMeshUpdate(const StdMesh& old_mesh): - OldMesh(&old_mesh), BoneNamesByIndex(OldMesh->GetNumBones()) + OldMesh(&old_mesh), BoneNamesByIndex(OldMesh->GetSkeleton().GetNumBones()) { for(std::map::const_iterator iter = OldMesh->Animations.begin(); iter != OldMesh->Animations.end(); ++iter) AnimationNames[&iter->second] = iter->first; - for(unsigned int i = 0; i < OldMesh->GetNumBones(); ++i) - BoneNamesByIndex[i] = OldMesh->GetBone(i).Name; + for (unsigned int i = 0; i < OldMesh->GetSkeleton().GetNumBones(); ++i) + BoneNamesByIndex[i] = OldMesh->GetSkeleton().GetBone(i).Name; } void StdMeshUpdate::Update(StdMeshInstance* instance, const StdMesh& new_mesh) const @@ -95,7 +95,7 @@ void StdMeshUpdate::Update(StdMeshInstance* instance, const StdMesh& new_mesh) c // Update instance to represent new mesh instance->Mesh = &new_mesh; - instance->BoneTransforms = std::vector(new_mesh.GetNumBones(), StdMeshMatrix::Identity()); + instance->BoneTransforms = std::vector(new_mesh.GetSkeleton().GetNumBones(), StdMeshMatrix::Identity()); instance->BoneTransformsDirty = true; for (unsigned int i = 0; i < instance->SubMeshInstances.size(); ++i) @@ -168,7 +168,7 @@ bool StdMeshUpdate::UpdateAnimationNode(StdMeshInstance* instance, const StdMesh { // Update bone index by bone name StdCopyStrBuf bone_name = BoneNamesByIndex[node->Custom.BoneIndex]; - const StdMeshBone* bone = new_mesh.GetBoneByName(bone_name); + const StdMeshBone* bone = new_mesh.GetSkeleton().GetBoneByName(bone_name); if(!bone) return false; node->Custom.BoneIndex = bone->Index; return true; diff --git a/src/network/C4Network2.cpp b/src/network/C4Network2.cpp index 8b5f86441..aa8c77316 100644 --- a/src/network/C4Network2.cpp +++ b/src/network/C4Network2.cpp @@ -1064,9 +1064,9 @@ void C4Network2::HandleConn(const C4PacketConn &Pkt, C4Network2IOConnection *pCo // check engine version bool fWrongPassword = false; - if (Pkt.getVer() != C4XVER1*10000 + C4XVER2*100 + C4XVER3) + if (Pkt.getVer() != C4XVER1*100 + C4XVER2) { - reply.Format("wrong engine (%d.%d.%d, I have %d.%d.%d)", Pkt.getVer()/10000, Pkt.getVer()/100%100, Pkt.getVer()%100, C4XVER1, C4XVER2, C4XVER3); + reply.Format("wrong engine (%d.%d, I have %d.%d)", Pkt.getVer()/100, Pkt.getVer()%100, C4XVER1, C4XVER2); fOK = false; } else diff --git a/src/network/C4Packet2.cpp b/src/network/C4Packet2.cpp index 5bdd94a05..4c8fe9125 100644 --- a/src/network/C4Packet2.cpp +++ b/src/network/C4Packet2.cpp @@ -408,12 +408,12 @@ void C4PacketList::CompileFunc(StdCompiler *pComp) // *** C4PacketConn C4PacketConn::C4PacketConn() - : iVer(C4XVER1*10000 + C4XVER2*100 + C4XVER3) + : iVer(C4XVER1*100 + C4XVER2) { } C4PacketConn::C4PacketConn(const C4ClientCore &nCCore, uint32_t inConnID, const char *szPassword) - : iVer(C4XVER1*10000 + C4XVER2*100 + C4XVER3), + : iVer(C4XVER1*100 + C4XVER2), iConnID(inConnID), CCore(nCCore), Password(szPassword) diff --git a/src/object/C4Def.cpp b/src/object/C4Def.cpp index 1144d50fa..7290d2145 100644 --- a/src/object/C4Def.cpp +++ b/src/object/C4Def.cpp @@ -62,7 +62,7 @@ private: void C4Def::DefaultDefCore() { - rC4XVer[0]=rC4XVer[1]=rC4XVer[2]=0; + rC4XVer[0]=rC4XVer[1]=0; RequireDef.Clear(); Shape.Default(); Entrance.Default(); @@ -126,7 +126,7 @@ bool C4Def::LoadDefCore(C4Group &hGroup) Source.Clear(); // Let's be bold: Rewrite, with current version - /*rC4XVer[0] = C4XVER1; rC4XVer[1] = C4XVER2; rC4XVer[2] = C4XVER3; + /*rC4XVer[0] = C4XVER1; rC4XVer[1] = C4XVER2; hGroup.Rename(C4CFN_DefCore, C4CFN_DefCore ".old"); Save(hGroup);*/ @@ -325,8 +325,6 @@ bool C4Def::Load(C4Group &hGroup, const char *szLanguage, C4SoundSystem *pSoundSystem) { - bool fSuccess=true; - bool AddFileMonitoring = false; if (Game.pFileMonitor && !SEqual(hGroup.GetFullName().getData(),Filename) && !hGroup.IsPacked()) AddFileMonitoring = true; @@ -340,10 +338,58 @@ bool C4Def::Load(C4Group &hGroup, if (AddFileMonitoring) Game.pFileMonitor->AddDirectory(Filename); + LoadMeshMaterials(hGroup); + bool fSuccess = LoadParticleDef(hGroup); + + // Read DefCore + if (fSuccess) fSuccess = LoadDefCore(hGroup); + + // Skip def: don't even read sounds! + if (fSuccess && Game.C4S.Definitions.SkipDefs.GetIDCount(id, 1)) return false; + + // Read sounds, even if not a valid def (for pure ocd sound folders) + if (dwLoadWhat & C4D_Load_Sounds) LoadSounds(hGroup, pSoundSystem); + + // cancel if not a valid definition + if (!fSuccess) return false; + + // Read and parse SolidMask bitmap + if (!LoadSolidMask(hGroup)) return false; + + // Read surface bitmap, meshes, skeletons + if ((dwLoadWhat & C4D_Load_Bitmap) && !LoadGraphics(hGroup)) return false; + + // Read string table + C4Language::LoadComponentHost(&StringTable, hGroup, C4CFN_ScriptStringTbl, szLanguage); + + // Register ID with script engine + ::ScriptEngine.RegisterGlobalConstant(id.ToString(), C4VPropList(this)); + ParentKeyName = ::Strings.RegString(id.ToString()); + + // Read script + if (dwLoadWhat & C4D_Load_Script) LoadScript(hGroup, szLanguage); + + // Read clonknames + if (dwLoadWhat & C4D_Load_ClonkNames) LoadClonkNames(hGroup, pClonkNames, szLanguage); + + // Read clonkranks + if (dwLoadWhat & C4D_Load_RankNames) LoadRankNames(hGroup, szLanguage); + + // Read rankfaces + if (dwLoadWhat & C4D_Load_RankFaces) LoadRankFaces(hGroup); + + // Temporary flag + if (dwLoadWhat & C4D_Load_Temporary) Temporary=true; + + return true; +} + +void C4Def::LoadMeshMaterials(C4Group &hGroup) +{ // Load all mesh materials from this folder C4DefAdditionalResourcesLoader loader(hGroup); hGroup.ResetSearch(); - char MaterialFilename[_MAX_PATH+1]; *MaterialFilename=0; + char MaterialFilename[_MAX_PATH + 1]; *MaterialFilename = 0; while (hGroup.FindNextEntry(C4CFN_DefMaterials, MaterialFilename, NULL, !!*MaterialFilename)) { StdStrBuf material; @@ -362,12 +408,16 @@ bool C4Def::Load(C4Group &hGroup, } } } +} +bool C4Def::LoadParticleDef(C4Group &hGroup) +{ + bool fSuccess = true; // particle def? if (hGroup.AccessEntry(C4CFN_ParticleCore)) { // def loading not successful; abort after reading sounds - fSuccess=false; + fSuccess = false; // create new particle def C4ParticleDef *pParticleDef = new C4ParticleDef(); // load it @@ -378,26 +428,11 @@ bool C4Def::Load(C4Group &hGroup, } // done } + return fSuccess; +} - - // Read DefCore - if (fSuccess) fSuccess=LoadDefCore(hGroup); - - // skip def: don't even read sounds! - if (fSuccess && Game.C4S.Definitions.SkipDefs.GetIDCount(id, 1)) return false; - - if (!fSuccess) - { - - // Read sounds even if not a valid def (for pure ocd sound folders) - if (dwLoadWhat & C4D_Load_Sounds) - if (pSoundSystem) - pSoundSystem->LoadEffects(hGroup); - - return false; - } - - // Read and parse SolidMask bitmap +bool C4Def::LoadSolidMask(C4Group &hGroup) +{ if (hGroup.FindEntry(C4CFN_SolidMask)) { pSolidMask = C4SolidMask::LoadMaskFromFile(hGroup, C4CFN_SolidMask); @@ -407,7 +442,7 @@ bool C4Def::Load(C4Group &hGroup, return false; } // check SolidMask size - if (SolidMask.x<0 || SolidMask.y<0 || SolidMask.x+SolidMask.Wdt>pSolidMask->Wdt || SolidMask.y+SolidMask.Hgt>pSolidMask->Hgt) SolidMask.Default(); + if (SolidMask.x<0 || SolidMask.y<0 || SolidMask.x + SolidMask.Wdt>pSolidMask->Wdt || SolidMask.y + SolidMask.Hgt>pSolidMask->Hgt) SolidMask.Default(); } else if (SolidMask.Wdt) { @@ -416,116 +451,32 @@ bool C4Def::Load(C4Group &hGroup, SolidMask.Default(); } - // Read surface bitmap - if (dwLoadWhat & C4D_Load_Bitmap) - if (!Graphics.Load(hGroup, !!ColorByOwner)) - { - DebugLogF(" Error loading graphics of %s (%s)", hGroup.GetFullName().getData(), id.ToString()); - return false; - } + return true; +} - // Read string table - C4Language::LoadComponentHost(&StringTable, hGroup, C4CFN_ScriptStringTbl, szLanguage); - - // Register ID with script engine - ::ScriptEngine.RegisterGlobalConstant(id.ToString(), C4VPropList(this)); - ParentKeyName = ::Strings.RegString(id.ToString()); - - // Read script - if (dwLoadWhat & C4D_Load_Script) +bool C4Def::LoadGraphics(C4Group &hGroup) +{ + if (!Graphics.Load(hGroup, !!ColorByOwner)) { - // reg script to engine - Script.Reg2List(&::ScriptEngine); - // Load script - Script.Load(hGroup, C4CFN_Script, szLanguage, &StringTable); + DebugLogF(" Error loading graphics of %s (%s)", hGroup.GetFullName().getData(), id.ToString()); + return false; } - // read clonknames - if (dwLoadWhat & C4D_Load_ClonkNames) - { - // clear any previous - if (pClonkNames) delete pClonkNames; pClonkNames=NULL; - if (hGroup.FindEntry(C4CFN_ClonkNameFiles)) - { - // create new - pClonkNames = new C4ComponentHost(); - if (!C4Language::LoadComponentHost(pClonkNames, hGroup, C4CFN_ClonkNames, szLanguage)) - { - delete pClonkNames; pClonkNames = NULL; - } - else - fClonkNamesOwned = true; - } - } - - // read clonkranks - if (dwLoadWhat & C4D_Load_RankNames) - { - // clear any previous - if (pRankNames) delete pRankNames; pRankNames=NULL; - if (hGroup.FindEntry(C4CFN_RankNameFiles)) - { - // create new - pRankNames = new C4RankSystem(); - // load from group - if (!pRankNames->Load(hGroup, C4CFN_RankNames, 1000, szLanguage)) - { - delete pRankNames; pRankNames=NULL; - } - else - fRankNamesOwned = true; - } - } - - // read rankfaces - if (dwLoadWhat & C4D_Load_RankFaces) - { - // clear any previous - if (pRankSymbols) delete pRankSymbols; pRankSymbols=NULL; - // load new - if (hGroup.AccessEntry(C4CFN_RankFacesPNG)) - { - pRankSymbols = new C4FacetSurface(); - if (!pRankSymbols->GetFace().ReadPNG(hGroup)) { delete pRankSymbols; pRankSymbols=NULL; } - } - // set size - if (pRankSymbols) - { - pRankSymbols->Set(&pRankSymbols->GetFace(), 0,0, pRankSymbols->GetFace().Hgt,pRankSymbols->GetFace().Hgt); - int32_t Q; pRankSymbols->GetPhaseNum(iNumRankSymbols, Q); - if (!iNumRankSymbols) { delete pRankSymbols; pRankSymbols=NULL; } - else - { - if (pRankNames) - { - // if extended rank names are defined, subtract those from the symbol count. The last symbols are used as overlay - iNumRankSymbols = Max(1, iNumRankSymbols - pRankNames->GetExtendedRankNum()); - } - fRankSymbolsOwned = true; - } - } - } - - // Read sounds - if (dwLoadWhat & C4D_Load_Sounds) - if (pSoundSystem) - pSoundSystem->LoadEffects(hGroup); - - if(Graphics.Type == C4DefGraphics::TYPE_Bitmap) + if (Graphics.Type == C4DefGraphics::TYPE_Bitmap) { // Bitmap post-load settings if (Graphics.GetBitmap()) { // Set MainFace (unassigned bitmap: will be set by GetMainFace()) - MainFace.Set(NULL,0,0,Shape.Wdt,Shape.Hgt); + MainFace.Set(NULL, 0, 0, Shape.Wdt, Shape.Hgt); } // Adjust picture rect - if ((PictureRect.Wdt==0) || (PictureRect.Hgt==0)) - PictureRect.Set(0,0,Shape.Wdt*Graphics.Bmp.Bitmap->Scale, Shape.Hgt*Graphics.Bmp.Bitmap->Scale); + if ((PictureRect.Wdt == 0) || (PictureRect.Hgt == 0)) + PictureRect.Set(0, 0, Shape.Wdt*Graphics.Bmp.Bitmap->Scale, Shape.Hgt*Graphics.Bmp.Bitmap->Scale); // validate TopFace - if (TopFace.x<0 || TopFace.y<0 || TopFace.x+TopFace.Wdt>Graphics.Bmp.Bitmap->Wdt || TopFace.y+TopFace.Hgt>Graphics.Bmp.Bitmap->Hgt) + if (TopFace.x<0 || TopFace.y<0 || TopFace.x + TopFace.Wdt>Graphics.Bmp.Bitmap->Wdt || TopFace.y + TopFace.Hgt>Graphics.Bmp.Bitmap->Hgt) { TopFace.Default(); // warn in debug mode @@ -537,12 +488,86 @@ bool C4Def::Load(C4Group &hGroup, TopFace.Default(); } - // Temporary flag - if (dwLoadWhat & C4D_Load_Temporary) Temporary=true; - return true; } +void C4Def::LoadScript(C4Group &hGroup, const char* szLanguage) +{ + // reg script to engine + Script.Reg2List(&::ScriptEngine); + // Load script + Script.Load(hGroup, C4CFN_Script, szLanguage, &StringTable); +} + +void C4Def::LoadClonkNames(C4Group &hGroup, C4ComponentHost* pClonkNames, const char* szLanguage) +{ + // clear any previous + if (pClonkNames) delete pClonkNames; pClonkNames = NULL; + if (hGroup.FindEntry(C4CFN_ClonkNameFiles)) + { + // create new + pClonkNames = new C4ComponentHost(); + if (!C4Language::LoadComponentHost(pClonkNames, hGroup, C4CFN_ClonkNames, szLanguage)) + { + delete pClonkNames; pClonkNames = NULL; + } + else + fClonkNamesOwned = true; + } +} + +void C4Def::LoadRankNames(C4Group &hGroup, const char* szLanguage) +{ + // clear any previous + if (pRankNames) delete pRankNames; pRankNames = NULL; + if (hGroup.FindEntry(C4CFN_RankNameFiles)) + { + // create new + pRankNames = new C4RankSystem(); + // load from group + if (!pRankNames->Load(hGroup, C4CFN_RankNames, 1000, szLanguage)) + { + delete pRankNames; pRankNames = NULL; + } + else + fRankNamesOwned = true; + } +} + +void C4Def::LoadRankFaces(C4Group &hGroup) +{ + // clear any previous + if (pRankSymbols) delete pRankSymbols; pRankSymbols = NULL; + // load new + if (hGroup.AccessEntry(C4CFN_RankFacesPNG)) + { + pRankSymbols = new C4FacetSurface(); + if (!pRankSymbols->GetFace().ReadPNG(hGroup)) { delete pRankSymbols; pRankSymbols = NULL; } + } + // set size + if (pRankSymbols) + { + pRankSymbols->Set(&pRankSymbols->GetFace(), 0, 0, pRankSymbols->GetFace().Hgt, pRankSymbols->GetFace().Hgt); + int32_t Q; pRankSymbols->GetPhaseNum(iNumRankSymbols, Q); + if (!iNumRankSymbols) { delete pRankSymbols; pRankSymbols = NULL; } + else + { + if (pRankNames) + { + // if extended rank names are defined, subtract those from the symbol count. The last symbols are used as overlay + iNumRankSymbols = Max(1, iNumRankSymbols - pRankNames->GetExtendedRankNum()); + } + fRankSymbolsOwned = true; + } + } +} + +void C4Def::LoadSounds(C4Group &hGroup, C4SoundSystem* pSoundSystem) +{ + if (pSoundSystem) + pSoundSystem->LoadEffects(hGroup); +} + void C4Def::Draw(C4Facet &cgo, bool fSelected, DWORD iColor, C4Object *pObj, int32_t iPhaseX, int32_t iPhaseY, C4DrawTransform* trans) { if(fSelected) diff --git a/src/object/C4Def.h b/src/object/C4Def.h index a2385ef13..bf3c1dc38 100644 --- a/src/object/C4Def.h +++ b/src/object/C4Def.h @@ -101,7 +101,7 @@ class C4Def: public C4PropListStatic { public: C4ID id; - int32_t rC4XVer[3]; + int32_t rC4XVer[2]; C4IDList RequireDef; C4Shape Shape; C4Rect Entrance; @@ -161,6 +161,16 @@ public: protected: bool Compile(const char *szSource, const char *szName); bool Decompile(StdStrBuf *pOut, const char *szName); +private: + void LoadMeshMaterials(C4Group &hGroup); + bool LoadParticleDef(C4Group &hGroup); + bool LoadSolidMask(C4Group &hGroup); + bool LoadGraphics(C4Group &hGroup); + void LoadScript(C4Group &hGroup, const char* szLanguage); + void LoadClonkNames(C4Group &hGroup, C4ComponentHost* pClonkNames, const char* szLanguage); + void LoadRankNames(C4Group &hGroup, const char* szLanguage); + void LoadRankFaces(C4Group &hGroup); + void LoadSounds(C4Group &hGroup, C4SoundSystem* pSoundSystem); // Here begins the C4Def diff --git a/src/object/C4DefList.cpp b/src/object/C4DefList.cpp index 11c89f20b..008fb8048 100644 --- a/src/object/C4DefList.cpp +++ b/src/object/C4DefList.cpp @@ -287,14 +287,14 @@ int32_t C4DefList::RemoveTemporary() return removed; } -int32_t C4DefList::CheckEngineVersion(int32_t ver1, int32_t ver2, int32_t ver3) +int32_t C4DefList::CheckEngineVersion(int32_t ver1, int32_t ver2) { int32_t rcount=0; C4Def *cdef,*prev,*next; for (cdef=FirstDef,prev=NULL; cdef; cdef=next) { next=cdef->Next; - if (CompareVersion(cdef->rC4XVer[0],cdef->rC4XVer[1],cdef->rC4XVer[2],ver1,ver2,ver3) > 0) + if (CompareVersion(cdef->rC4XVer[0],cdef->rC4XVer[1],ver1,ver2) > 0) { if (prev) prev->Next=cdef->Next; else FirstDef=cdef->Next; diff --git a/src/object/C4DefList.h b/src/object/C4DefList.h index a2e9935ba..c916404b8 100644 --- a/src/object/C4DefList.h +++ b/src/object/C4DefList.h @@ -52,7 +52,7 @@ public: int32_t GetDefCount(); int32_t GetIndex(C4ID id); int32_t RemoveTemporary(); - int32_t CheckEngineVersion(int32_t ver1, int32_t ver2, int32_t ver3); + int32_t CheckEngineVersion(int32_t ver1, int32_t ver2); int32_t CheckRequireDef(); void Draw(C4ID id, C4Facet &cgo, bool fSelected, int32_t iColor); void Remove(C4Def *def); diff --git a/src/object/C4ObjectScript.cpp b/src/object/C4ObjectScript.cpp index 2d223c139..457f28f20 100644 --- a/src/object/C4ObjectScript.cpp +++ b/src/object/C4ObjectScript.cpp @@ -1866,7 +1866,7 @@ static Nillable FnTransformBone(C4Object *Obj, C4String *szBoneName, C4Valu if (!s_node || s_node->GetSlot() != iSlot) return C4Void(); } - const StdMeshBone* bone = Instance->GetMesh().GetBoneByName(szBoneName->GetData()); + const StdMeshBone* bone = Instance->GetMesh().GetSkeleton().GetBoneByName(szBoneName->GetData()); if(!bone) return C4Void(); StdMeshInstance::ValueProvider* w_provider = CreateValueProviderFromArray(Obj, *WeightProvider); @@ -2206,7 +2206,7 @@ static bool FnCreateParticleAtBone(C4Object* Obj, C4String* szName, C4String* sz // Get bone if(!Obj->pMeshInstance) return false; const StdMesh& mesh = Obj->pMeshInstance->GetMesh(); - const StdMeshBone* bone = mesh.GetBoneByName(szBoneName->GetData()); + const StdMeshBone* bone = mesh.GetSkeleton().GetBoneByName(szBoneName->GetData()); if(!bone) return false; // get particle C4ParticleDef *pDef=::Particles.definitions.GetDef(FnStringPar(szName)); @@ -2506,6 +2506,7 @@ C4ScriptConstDef C4ScriptObjectConstMap[]= { "AM_None" ,C4V_Int, StdMeshInstance::AM_None }, { "AM_DrawBefore" ,C4V_Int, StdMeshInstance::AM_DrawBefore }, + { "AM_MatchSkeleton" ,C4V_Int, StdMeshInstance::AM_MatchSkeleton }, { NULL, C4V_Nil, 0} }; diff --git a/src/platform/C4MusicFile.cpp b/src/platform/C4MusicFile.cpp index fe3093efd..7a723a700 100644 --- a/src/platform/C4MusicFile.cpp +++ b/src/platform/C4MusicFile.cpp @@ -410,7 +410,7 @@ void C4MusicFileSDL::SetVolume(int iLevel) /* Ogg Vobis */ -C4MusicFileOgg::C4MusicFileOgg() : playing(false), current_section(0), channel(0), streaming_done(false), byte_pos_total(0), volume(1.0f) +C4MusicFileOgg::C4MusicFileOgg() : playing(false), current_section(0), channel(0), streaming_done(false), byte_pos_total(0), volume(1.0f), loaded(false) { for (size_t i=0; irate; - ogg_info.sample_length = ov_time_total(&ogg_file, -1)/1000.0; + ogg_info.sample_length = ov_time_total(&ogg_file, -1) / 1000.0; + + // Get categories from ogg comment header + vorbis_comment *comment = ov_comment(&ogg_file, -1); + const char *comment_id = "COMMENT="; + int comment_id_len = strlen(comment_id); + for (int i = 0; i < comment->comments; ++i) + { + if (comment->comment_lengths[i] > comment_id_len) + { + if (SEqual2NoCase(comment->user_comments[i], comment_id, comment_id_len)) + { + // Add all categories delimeted by ';' + const char *categories_string = comment->user_comments[i] + comment_id_len; + for (;;) + { + int delimeter = SCharPos(';', categories_string); + StdCopyStrBuf category; + category.Copy(categories_string, delimeter >= 0 ? delimeter : SLen(categories_string)); + categories.push_back(category); + if (delimeter < 0) break; + categories_string += delimeter+1; + } + } + } + } + + // mark successfully loaded + return loaded = true; +} + +bool C4MusicFileOgg::Play(bool loop) +{ + // Valid file? + if (!loaded) return false; + // stop previous + Stop(); + // Get channel to use + alGenSources(1, (ALuint*)&channel); + if (!channel) return false; playing = true; streaming_done = false; @@ -472,6 +525,7 @@ bool C4MusicFileOgg::Play(bool loop) // prepare read ogg_info.sound_data.resize(num_buffers * buffer_size); alGenBuffers(num_buffers, buffers); + ov_pcm_seek(&ogg_file, 0); // Fill initial buffers for (size_t i=0; igetData())) + return true; + return false; +} + bool C4MusicFileOgg::FillBuffer(size_t idx) { // uncompress from ogg data diff --git a/src/platform/C4MusicFile.h b/src/platform/C4MusicFile.h index 63ed327d8..c99ca60b5 100644 --- a/src/platform/C4MusicFile.h +++ b/src/platform/C4MusicFile.h @@ -27,7 +27,7 @@ class C4MusicFile { public: - C4MusicFile() : LastPlayed(-1), NoPlay(false), SongExtracted(false) { } + C4MusicFile() : LastPlayed(-1), NoPlay(false), SongExtracted(false), loop(false) { } virtual ~C4MusicFile() { } // data @@ -35,12 +35,16 @@ public: C4MusicFile *pNext; int LastPlayed; bool NoPlay; + bool loop; virtual bool Init(const char *strFile); virtual bool Play(bool loop = false) = 0; virtual void Stop(int fadeout_ms = 0) = 0; virtual void CheckIfPlaying() = 0; virtual void SetVolume(int) = 0; + virtual bool HasCategory(const char *szcat) const { return false; } + + bool IsLooping() const { return loop; } protected: @@ -142,21 +146,25 @@ class C4MusicFileOgg : public C4MusicFile public: C4MusicFileOgg(); ~C4MusicFileOgg(); + void Clear(); + virtual bool Init(const char *strFile); bool Play(bool loop = false); void Stop(int fadeout_ms = 0); void CheckIfPlaying(); void SetVolume(int); + virtual bool HasCategory(const char *szcat) const; private: enum { num_buffers = 4, buffer_size = 160*1024 }; ::C4SoundLoaders::VorbisLoader::CompressedData data; ::C4SoundLoaders::SoundInfo ogg_info; OggVorbis_File ogg_file; - bool playing, streaming_done, loop; + bool playing, streaming_done, loaded; ALuint buffers[num_buffers]; ALuint channel; int current_section; size_t byte_pos_total; float volume; + std::vector categories; // cateogries stored in meta info bool FillBuffer(size_t idx); void Execute(); // fill processed buffers diff --git a/src/platform/C4MusicSystem.cpp b/src/platform/C4MusicSystem.cpp index aa8b5fc9d..b22dfbdee 100644 --- a/src/platform/C4MusicSystem.cpp +++ b/src/platform/C4MusicSystem.cpp @@ -32,7 +32,8 @@ C4MusicSystem::C4MusicSystem(): Songs(NULL), SongCount(0), PlayMusicFile(NULL), - Volume(100) + Volume(100), + FadeMusicFile(NULL) #if AUDIO_TK == AUDIO_TK_OPENAL , alcDevice(NULL), alcContext(NULL) #endif @@ -385,6 +386,26 @@ void C4MusicSystem::Clear() void C4MusicSystem::Execute() { + // Execute music fading + if (FadeMusicFile) + { + C4TimeMilliseconds tNow = C4TimeMilliseconds::Now(); + // Fading done? + if (tNow >= FadeTimeEnd) + { + FadeMusicFile->Stop(); + FadeMusicFile = NULL; + if (PlayMusicFile) PlayMusicFile->SetVolume(Volume); + } + else + { + // Fade process + int fade_volume = 1000 * (tNow - FadeTimeStart) / (FadeTimeEnd - FadeTimeStart); + FadeMusicFile->SetVolume(Volume * (1000 - fade_volume) / 1000); + if (PlayMusicFile) PlayMusicFile->SetVolume(Volume * fade_volume / 1000); + } + } + // Ensure a piece is played #if AUDIO_TK != AUDIO_TK_SDL_MIXER if (!::Game.iTick35 || !Game.IsRunning) #endif @@ -396,7 +417,7 @@ void C4MusicSystem::Execute() } } -bool C4MusicSystem::Play(const char *szSongname, bool fLoop) +bool C4MusicSystem::Play(const char *szSongname, bool fLoop, int fadetime_ms) { if (Game.IsRunning ? !Config.Sound.RXMusic : !Config.Sound.FEMusic) return false; @@ -443,11 +464,45 @@ bool C4MusicSystem::Play(const char *szSongname, bool fLoop) if (!NewFile) return false; - // Stop old music - Stop(); - LogF(LoadResStr("IDS_PRC_PLAYMUSIC"), GetFilename(NewFile->FileName)); + // Stop/Fade out old music + bool is_fading = fadetime_ms && NewFile != PlayMusicFile && PlayMusicFile; + if (!is_fading) + { + Stop(); + } + else + { + C4TimeMilliseconds tNow = C4TimeMilliseconds::Now(); + if (FadeMusicFile) + { + if (FadeMusicFile == NewFile && FadeMusicFile->IsLooping() == fLoop && tNow < FadeTimeEnd) + { + // Fading back to a song while it wasn't fully faded out yet. Just swap our pointers and fix timings for that. + FadeMusicFile = PlayMusicFile; + PlayMusicFile = NewFile; + FadeTimeEnd = tNow + fadetime_ms * (tNow - FadeTimeStart) / (FadeTimeEnd - FadeTimeStart); + FadeTimeStart = FadeTimeEnd - fadetime_ms; + return true; + } + else + { + // Fading to a third song while the previous wasn't faded out yet + // That's pretty chaotic anyway, so just cancel the last song + // Also happens if fading should already be done, in which case it won't harm to stop now + // (It would stop on next call to Execute() anyway) + // Also happens when fading back to the same song but loop status changes, but that should be really uncommon. + FadeMusicFile->Stop(); + } + + } + FadeMusicFile = PlayMusicFile; + PlayMusicFile = NULL; + FadeTimeStart = tNow; + FadeTimeEnd = FadeTimeStart + fadetime_ms; + } + // Play new song if (!NewFile->Play(fLoop)) return false; PlayMusicFile = NewFile; @@ -455,7 +510,7 @@ bool C4MusicSystem::Play(const char *szSongname, bool fLoop) Loop = fLoop; // Set volume - PlayMusicFile->SetVolume(Volume); + PlayMusicFile->SetVolume(Volume * !is_fading); return true; } @@ -474,9 +529,14 @@ void C4MusicSystem::NotifySuccess() void C4MusicSystem::FadeOut(int fadeout_ms) { + // Kill any previous fading music and schedule current piece to fade if (PlayMusicFile) { - PlayMusicFile->Stop(fadeout_ms); + if (FadeMusicFile) FadeMusicFile->Stop(); + FadeMusicFile = PlayMusicFile; + PlayMusicFile = NULL; + FadeTimeStart = C4TimeMilliseconds::Now(); + FadeTimeEnd = FadeTimeStart + fadeout_ms; } } @@ -487,6 +547,11 @@ bool C4MusicSystem::Stop() PlayMusicFile->Stop(); PlayMusicFile=NULL; } + if (FadeMusicFile) + { + FadeMusicFile->Stop(); + FadeMusicFile = NULL; + } return true; } @@ -533,7 +598,7 @@ bool C4MusicSystem::GrpContainsMusic(C4Group &rGrp) || rGrp.FindEntry("*.ogg"); } -int C4MusicSystem::SetPlayList(const char *szPlayList) +int C4MusicSystem::SetPlayList(const char *szPlayList, bool fForceSwitch, int fadetime_ms) { // reset C4MusicFile *pFile; @@ -549,8 +614,8 @@ int C4MusicSystem::SetPlayList(const char *szPlayList) // match char szFileName[_MAX_FNAME + 1]; for (int cnt = 0; SGetModule(szPlayList, cnt, szFileName, _MAX_FNAME); cnt++) - for (pFile = Songs; pFile; pFile = pFile->pNext) - if (pFile->NoPlay && WildcardMatch(szFileName, GetFilename(pFile->FileName))) + for (pFile = Songs; pFile; pFile = pFile->pNext) if (pFile->NoPlay) + if (WildcardMatch(szFileName, GetFilename(pFile->FileName)) || pFile->HasCategory(szFileName)) { ASongCount++; pFile->NoPlay = false; @@ -569,6 +634,11 @@ int C4MusicSystem::SetPlayList(const char *szPlayList) pFile->NoPlay = false; } } + // Force switch of music if currently playing piece is not in list? + if (fForceSwitch && PlayMusicFile && PlayMusicFile->NoPlay) + { + Play(NULL, false, fadetime_ms); + } return ASongCount; } diff --git a/src/platform/C4MusicSystem.h b/src/platform/C4MusicSystem.h index 136cf361d..c55141455 100644 --- a/src/platform/C4MusicSystem.h +++ b/src/platform/C4MusicSystem.h @@ -40,11 +40,11 @@ public: void NotifySuccess(); bool Init(const char * PlayList = NULL); bool InitForScenario(C4Group & hGroup); - bool Play(const char *szSongname = NULL, bool fLoop = false); + bool Play(const char *szSongname = NULL, bool fLoop = false, int fadetime_ms = 0); bool Stop(); void FadeOut(int fadeout_ms); - int SetPlayList(const char *szPlayList); + int SetPlayList(const char *szPlayList, bool fForceSwitch = false, int fadetime_ms = 0); bool ToggleOnOff(); // keyboard callback @@ -57,6 +57,10 @@ protected: C4MusicFile *PlayMusicFile; int Volume; bool Loop; + // fading between two songs + C4MusicFile *FadeMusicFile; + C4TimeMilliseconds FadeTimeStart, FadeTimeEnd; + void LoadDir(const char *szPath); // load some music files (by wildcard / directory) void Load(const char *szFile); // load a music file void LoadMoreMusic(); // load music file names from MoreMusic.txt diff --git a/src/platform/C4Window.h b/src/platform/C4Window.h index 68b1ee358..fe505d888 100644 --- a/src/platform/C4Window.h +++ b/src/platform/C4Window.h @@ -287,13 +287,15 @@ public: W_GuiWindow, W_Console, W_Viewport, - W_Fullscreen + W_Fullscreen, + W_Control // wrapper to a render target control inside a window }; public: C4Window (); virtual ~C4Window (); bool Active; C4Surface * pSurface; + WindowKind eKind; virtual void Clear(); // Only when the wm requests a close // For example, when the user clicks the little x in the corner or uses Alt-F4 diff --git a/src/platform/C4WindowWin32.cpp b/src/platform/C4WindowWin32.cpp index b39fca996..ec97dc908 100644 --- a/src/platform/C4WindowWin32.cpp +++ b/src/platform/C4WindowWin32.cpp @@ -317,7 +317,7 @@ LRESULT APIENTRY ViewportWinProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lPa case WM_HSCROLL: switch (LOWORD(wParam)) { - case SB_THUMBTRACK: case SB_THUMBPOSITION: cvp->ViewX=HIWORD(wParam); break; + case SB_THUMBTRACK: case SB_THUMBPOSITION: cvp->ViewX=float(HIWORD(wParam))/cvp->Zoom; break; case SB_LINELEFT: cvp->ViewX-=ViewportScrollSpeed; break; case SB_LINERIGHT: cvp->ViewX+=ViewportScrollSpeed; break; case SB_PAGELEFT: cvp->ViewX-=cvp->ViewWdt; break; @@ -330,7 +330,7 @@ LRESULT APIENTRY ViewportWinProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lPa case WM_VSCROLL: switch (LOWORD(wParam)) { - case SB_THUMBTRACK: case SB_THUMBPOSITION: cvp->ViewY=HIWORD(wParam); break; + case SB_THUMBTRACK: case SB_THUMBPOSITION: cvp->ViewY = float(HIWORD(wParam))/cvp->Zoom; break; case SB_LINEUP: cvp->ViewY-=ViewportScrollSpeed; break; case SB_LINEDOWN: cvp->ViewY+=ViewportScrollSpeed; break; case SB_PAGEUP: cvp->ViewY-=cvp->ViewWdt; break; @@ -533,6 +533,7 @@ C4Window::~C4Window () C4Window * C4Window::Init(C4Window::WindowKind windowKind, C4AbstractApp * pApp, const char * Title, const C4Rect * size) { Active = true; + eKind = windowKind; if (windowKind == W_Viewport) { static bool fViewportClassRegistered = false; @@ -647,6 +648,11 @@ C4Window * C4Window::Init(C4Window::WindowKind windowKind, C4AbstractApp * pApp, hRenderWindow = hWindow; return hWindow ? this : 0; } + else if (windowKind == W_Control) + { + // controlled externally + hWindow = hRenderWindow = NULL; + } return this; } @@ -674,9 +680,12 @@ bool C4Window::ReInit(C4AbstractApp* pApp) void C4Window::Clear() { - // Destroy window - if (hRenderWindow) DestroyWindow(hRenderWindow); - if (hWindow && hWindow != hRenderWindow) DestroyWindow(hWindow); + // Destroy window if we own it + if (eKind != W_Control) + { + if (hRenderWindow) DestroyWindow(hRenderWindow); + if (hWindow && hWindow != hRenderWindow) DestroyWindow(hWindow); + } hRenderWindow = NULL; hWindow = NULL; } diff --git a/src/platform/StdSync.h b/src/platform/StdSync.h index a017f42f5..112c17ddf 100644 --- a/src/platform/StdSync.h +++ b/src/platform/StdSync.h @@ -135,7 +135,8 @@ public: { // Use pthread_cond_wait or pthread_cond_timedwait depending on wait length. Check return value. // Note this will temporarily unlock the mutex, so no deadlock should occur. - timespec ts = { iMillis / 1000, (iMillis % 1000) * 1000000 }; + timespec ts = { static_cast(iMillis / 1000), + static_cast((iMillis % 1000) * 1000000) }; if (0 != (iMillis != INFINITE ? pthread_cond_timedwait(&cond, &mutex, &ts) : pthread_cond_wait(&cond, &mutex))) { pthread_mutex_unlock(&mutex); diff --git a/src/res/Info.plist b/src/res/Info.plist index 0a255fdd3..de44733a8 100644 --- a/src/res/Info.plist +++ b/src/res/Info.plist @@ -185,6 +185,6 @@ CFBundleShortVersionString ${C4VERSION} CFBundleVersion - ${C4XVER1}.${C4XVER2}.${C4XVER3} + ${C4XVER1}.${C4XVER2} diff --git a/src/res/engine.rc b/src/res/engine.rc index 5d1493cf3..158832579 100644 --- a/src/res/engine.rc +++ b/src/res/engine.rc @@ -53,8 +53,8 @@ __GDF_XML DATA "WindowsGamesExplorer.xml" // VS_VERSION_INFO VERSIONINFO - FILEVERSION C4XVER1,C4XVER2,C4XVER3,0 - PRODUCTVERSION C4XVER1,C4XVER2,C4XVER3,0 + FILEVERSION C4XVER1,C4XVER2,0 + PRODUCTVERSION C4XVER1,C4XVER2,0 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L diff --git a/src/script/C4Script.cpp b/src/script/C4Script.cpp index c2eb9b0a5..c680e6c46 100644 --- a/src/script/C4Script.cpp +++ b/src/script/C4Script.cpp @@ -746,7 +746,6 @@ C4ScriptConstDef C4ScriptConstMap[]= { "C4X_Ver1", C4V_Int, C4XVER1}, { "C4X_Ver2", C4V_Int, C4XVER2}, - { "C4X_Ver3", C4V_Int, C4XVER3}, { NULL, C4V_Nil, 0} };