diff --git a/src/TSMapEditor/Config/Actions.ini b/src/TSMapEditor/Config/Actions.ini index e86dc185..1bfc328f 100644 --- a/src/TSMapEditor/Config/Actions.ini +++ b/src/TSMapEditor/Config/Actions.ini @@ -32,7 +32,8 @@ ; WaypointZZ, ; String, ; GlobalVariable (35), -; House (2) +; HouseType (2), +; StringTableEntry ; A trigger action can have up to 7 parameters. When defining types for these, they range from P1Type= to P7Type=. ; If a trigger action takes a waypoint, typically the waypoint is P7 (this is why FinalSun has "uses waypoint" instead of P7 type). @@ -96,8 +97,9 @@ P2Type=Movie [TextTrigger] Name=Text Trigger -Description=Display the text from Tutorial section in Tutorial.ini (check from map first (Patch)). -P2Type=Text +Description=Display a stringtable string. +P1Type=-4 +P2Type=StringTableEntry [DestroyTrigger] Name=Destroy Trigger @@ -136,16 +138,19 @@ P2Type=Waypoint [PlaySound] Name=Play Sound Description=Plays the sound effect specified. Use numbers from Sounds.ini. +P1Type=-7 P2Type=Sound [PlayMusicTheme] Name=Play Music Theme Description=Plays the specified music track. Tracks are listed in Theme.ini. +P1Type=-8 P2Type=Theme [PlaySpeech] Name=Play Speech Description=Plays the speech sound specified. +P1Type=-6 P2Type=Speech [ForceTrigger] @@ -345,8 +350,8 @@ P2PresetOptions=0 Small,1 Medium,2 Large,3 Huge P7Type=WaypointZZ [ReduceTiberiumAt] -Name=Reduce Tiberium At -Description=Reduces Tiberium at the specified waypoint. +Name=Reduce Ore At +Description=Reduces Ore at the specified waypoint. P2Type=Waypoint [SellBuilding] @@ -473,9 +478,9 @@ Name=Vein Growth Description=Control if veins grow or not. P2Type=Boolean -[TiberiumGrowth] -Name=Tiberium Growth -Description=Control if Tiberium grows or not. +[OreGrowth] +Name=Ore Growth +Description=Control if ore grows or not. P2Type=Boolean [IceGrowth] @@ -533,11 +538,13 @@ Description=Toggles state of cargo train dropping crate. [PlaySoundEffectRandom] Name=Play Sound Effect (Random) Description=Plays sound effect at random waypoint. Rules of action 19 apply. +P1Type=-7 P2Type=Sound [PlaySoundEffectAtWaypoint] Name=Play Sound Effect at Waypoint Description=Plays sound effect specified at waypoint specified. Rules of action 19 apply. +P1Type=-7 P2Type=Sound P7Type=WaypointZZ @@ -546,74 +553,242 @@ Name=Play Ingame Movie Description=Displays the specified movie ingame. Player still has control of interface and units. P2Type=Movie +[ReshroudMapAt] +Name=Reshroud Map at +Description=Reshrouds map around waypoint. +P2Type=Waypoint + +[LightningStormStrike] +Name=Lightning Storm Strike +Description=Trigger's House fires a Lightning Storm at the specified waypoint. +P7Type=WaypointZZ + +[TimerText] +Name=Timer Text +Description=Displays text string from CSF as mission timer text. +P1Type=-4 +P2Type=StringTableEntry + [FlashTeam] Name=Flash Team Description=Flashes all members of a TeamType for the specified number of frames. -P1Type=-4 +P1Type=-5 P2Type=TeamType P7Type=Number -[DisableSpeech] -Name=Disable Speech -Description=Disables EVA announcements. - -[EnableSpeech] -Name=Enable Speech -Description=Enables EVA announcements. - -[SetGroup] -Name=Set Group -Description=Assigns all attached objects to the given Group number. -P2Type=Number - [TalkBubble] Name=Talk Bubble Description=Displays talk bubble over each member of the specified TeamType. -P1Type=-4 +P1Type=-5 P2Type=TeamType P7Type=Number -P7Name=Frame +P7Name=Duration + +[SetObjectTechLevel] +Name=Set Object Tech Level +Description=Sets the specified object type to have the specified tech level. +P1Type=-9 +P2Type=Techno +P7Type=Number + +[ReinforcementByChrono] +Name=Reinforcement by Chrono +Description=Creates an instance of a TeamType by Chronoshifting it into the map. The team is owned by the trigger's owning house. +P1Type=-1 +P2Type=TeamType +P7Type=WaypointZZ -[GiveCredits] -Name=Give Credits (Patch) -Description=Give credits to a specific house. +[CreateCrate] +Name=Create Crate +Description=Creates a Crate with specific contents at a waypoint. +P2Type=Number +P7Type=WaypointZZ + +[IronCurtainAt] +Name=Iron Curtain at +Description=Fires the Iron Curtain at the specified waypoint. +P7Type=WaypointZZ + +[PauseGame] +Name=Pause Game +Description=Pauses the game for the specified number of seconds. +P2Type=Number + +[EvictOccupiers] +Name=Evict Occupiers +Description=Evicts occupants from the attached building. + +[CenterJumpCameraAtWaypoint] +Name=Center (Jump) Camera at Waypoint +Description=Moves the tactical view to the specified waypoint. +P7Type=WaypointZZ + +[MakeHouseCheer] +Name=Make House Cheer +Description=All infantry of the specified house will play their cheer animation if they can. P2Type=HouseType -P3Type=Number -[EnableShortGame] -Name=Enable Short Game (Patch) -Description=Enables the Short Game option. Will NOT automatically kill players that have no buildings when this is enabled. +[SetSidebarTab] +Name=Set Sidebar Tab +Description=Flips sidebar to specified tab number (0-3). +P2Type=Number -[DisableShortGame] -Name=Disable Short Game (Patch) -Description=Disables the Short Game option. +[FlashCameo] +Name=Flash Cameo +Description=Flashes the cameo of the given object for the specified number of frames. +P1Type=-9 +P2Type=Techno +P7Type=Number -[ShowDifficultyLevel] -Name=Show Difficulty Level (Patch) -Description=Prints the difficulty level used for the current mission. +[StopSoundsAt] +Name=Stop Sounds at +Description=Stops all sounds playing at given waypoint that were started using the Play Sound At trigger action. +P7Type=WaypointZZ -[ForceSurrender] -Name=Force Surrender (Patch) -Description=Force the specified house to surrender and blow up everything they own. Use house indexes 50 to 57 for multiplayer houses. +[PlayIngameMoviePauseGame] +Name=Play Ingame Movie (Pause Game) +Description=Pauses game, locks player input and displays the specified movie in the sidebar. +P2Type=Movie + +[ClearAllSmudges] +Name=Clear All Smudges +Description=Will delete all Smudge objects from the map. + +[DestroyAllOf] +Name=Destroy All of +Description=Kills everything of the specified house. P2Type=HouseType -[PromoteVeterancy] -Name=Promote Veterancy (Patch) -Description=Promote the veterancy of the attached team. +[DestroyAllBuildingsOf] +Name=Destroy All Buildings of +Description=Kills all buildings for specified house. +P2Type=HouseType -[EnableAllyReveal] -Name=Enable AllyReveal (Patch) -Description=Enables AllyReveal (in Rules.ini AudioVisual section) logic, allowing allied houses to reveal shroud for each other. +[DestroyALlLandUnitsOf] +Name=Destroy All Land Units of +Description=Kills all land units for specified house. +P2Type=HouseType -[DisableAllyReveal] -Name=Disable AllyReveal (Patch) -Description=Disables AllyReveal (in Rules.ini AudioVisual section) logic, preventing allied houses from revealing shroud for each other. +[DestroyALlNavalUnitsOf] +Name=Destroy All Naval Units of +Description=Kills all naval units for specified house. +P2Type=HouseType + +[MindControlBaseOf] +Name=Mind Control Base of +Description=The owner of the trigger will mind control the argument's base. +P2Type=HouseType + +[RestoreMindControlledBaseTo] +Name=Restore Mind Controlled Base to +Description=The owner of the trigger will give all buildings that were the argument's back to it. +P2Type=HouseType + +[CreateBuildingAt] +Name=Create Building At +Description=Owner of the trigger will gain this type of building at this waypoint. Overlays will be cleared and units bumped. +P1Type=-10 +P2Type=Building +P7Type=Waypoint + +[RestoreStartingTechnosOf] +Name=Restore Starting Technos of +Description=All Buildings and units this house had at the start of the game will be recreated. Will bump units and erase Overlays. +P2Type=HouseType + +[ChronoScreenEffectsFor] +Name=Chrono Screen Effect for +Description=Will tile the screen with the full screen chrono effect for this many frames. +P2Type=Number -[CreateAutoSave] -Name=Create Auto-Save (Patch) -Description=Makes the game create an auto-save if auto-saves are enabled for the current game session. +[TeleportAllTo] +Name=Teleport All to +Description=All Units of trigger owning House will teleport to Waypoint. +P7Type=Waypoint -[EraseAttachedObject] -Name=Erase Attached Object (Patch) -Description=Erase any buildings or units that this trigger is attached to. Erasing means that the objects are silently removed from the game world without any explosions or other effects. Use "Destroy attached object" if you want to destroy the object normally. +[SetSuperweaponCharge] +Name=Set Superweapon Charge +Description=The owner of this trigger will have this superweapon charged to this percent% if they have the superweapon. Takes an int (0-100). +P1Type=-11 +P2Type=HouseType +P7Type=Number + +[RestoreStartingBuildingsOf] +Name=Restore Starting Buildings of +Description=All Buildings this house had at the start of the game will be healed or recreated. Will bump units and erase Overlays. +P2Type=HouseType + +[FlashBuildingsOfType] +Name=Flash Buildings of Type +Description=All buildings of this type owned by trigger owner will flash for this long. +P1Type=-9 +P2Type=Building +P7Type=Number + +[SuperweaponSetRechargeTime] +Name=Superweapon Set Recharge Time +Description=Changes the time (in frames) this superweapon takes to charge the next time it is reset or fired. +P1Type=-11 +P2Type=SuperWeapon +P7Type=Number + +[SuperweaponResetRechargeTime] +Name=Superweapon Reset Recharge Time +Description=Changes the time (in frames) this superweapon takes to charge back to normal. +P2Type=SuperWeapon + +[SuperweaponReset] +Name=Superweapon Reset +Description=Resets a superweapon like a spy had gotten in. +P2Type=SuperWeapon + +[PreferredTargetCellSet] +Name=Preferred Target Cell Set +Description=The owner of this trigger will aim all future targetable superweapons at this waypoint. +P7Type=Waypoint + +[PreferredTargetCellClear] +Name=Preferred Target Cell Clear +Description=The owner of this trigger will go back to targeting its superweapons normally. + +[CenterBaseCellSet] +Name=Center Base Cell Set +Description=Owner of this trigger will consider the center of its base to be this waypoint. +P7Type=Waypoint + +[CenterBaseCellClear] +Name=Center Base Cell Clear +Description=Owner of this trigger will go back to computing its center. + +[BlackoutRadarTrigger] +Name=Blackout Radar Trigger +Description=Owner will have radar blackout for this many frames. +P7Type=Number + +[DefensiveTargetCellSet] +Name=Defensive Target Cell Set +Description=The owner of this trigger will aim all future force shields at this waypoint. +P7Type=Waypoint + +[DefensiveTargetCellClear] +Name=Defensive Target Cell Clear +Description=The owner of this trigger will go back to targeting its force shields normally. + +[RetintRed] +Name=Retint Red +Description=Retint the Red portion of the screen, % +P2Type=Number + +[RetintGreen] +Name=Retint Green +Description=Retint the Green portion of the screen, % +P2Type=Number + +[RetintBlue] +Name=Retint Blue +Description=Retint the Blue portion of the screen, % +P2Type=Number +[JumpCameraHome] +Name=Jump Camera Home +Description=Just like hitting the 'H' key. diff --git a/src/TSMapEditor/Config/BaseMap.ini b/src/TSMapEditor/Config/BaseMap.ini index 275fac98..0a2316d9 100644 --- a/src/TSMapEditor/Config/BaseMap.ini +++ b/src/TSMapEditor/Config/BaseMap.ini @@ -8,7 +8,7 @@ NextScenario= AltNextScenario= Name=No name Author=Unknown Author -GameMode=Custom Map +GameMode=standard NewINIFormat=4 CarryOverCap=0 EndOfGame=no @@ -27,23 +27,30 @@ MultiplayerOnly=0 TiberiumGrowthEnabled=yes VeinGrowthEnabled=no IceGrowthEnabled=no -TiberiumDeathToVisceroid=yes +TiberiumDeathToVisceroid=no FreeRadar=no InitTime=10000 [Lighting] -Ambient=0.950 +Ambient=1.000 Red=1.000 Green=1.000 Blue=1.000 Ground=0.000 Level=0.032 -IonAmbient=0.500 -IonRed=1.500 +IonAmbient=1.000 +IonRed=1.000 IonGreen=1.000 -IonBlue=0.700 +IonBlue=1.000 IonGround=0.000 IonLevel=0.032 +DominatorAmbient=1.500 +DominatorAmbientChangeRate=0.009 +DominatorRed=0.850 +DominatorGreen=0.200 +DominatorBlue=0.300 +DominatorGround=0.000 +DominatorLevel=0.000 [SpecialFlags] TiberiumGrows=yes diff --git a/src/TSMapEditor/Config/Bridges.ini b/src/TSMapEditor/Config/Bridges.ini index b1f5b325..89003c9a 100644 --- a/src/TSMapEditor/Config/Bridges.ini +++ b/src/TSMapEditor/Config/Bridges.ini @@ -5,11 +5,21 @@ [Bridges] -0=Low Bridge -;1=High Bridge -;2=Railroad Bridge +0=Low Concrete Bridge +1=Low Wooden Bridge +2=High Concrete Bridge +3=High Wooden Bridge -[Low Bridge] +[Low Concrete Bridge] +Kind=Low +BridgeStart.EW=LOBRDB21 +BridgeEnd.EW=LOBRDB19 +BridgePieces.EW=LOBRDB01,LOBRDB02,LOBRDB03,LOBRDB04 +BridgeStart.NS=LOBRDB23 +BridgeEnd.NS=LOBRDB25 +BridgePieces.NS=LOBRDB10,LOBRDB11,LOBRDB12,LOBRDB13 + +[Low Wooden Bridge] Kind=Low BridgeStart.EW=LOBRDG21 BridgeEnd.EW=LOBRDG19 @@ -18,14 +28,14 @@ BridgeStart.NS=LOBRDG23 BridgeEnd.NS=LOBRDG25 BridgePieces.NS=LOBRDG10,LOBRDG11,LOBRDG12,LOBRDG13 -[High Bridge] +[High Concrete Bridge] Kind=High BridgePieces.EW=BRIDGE1 BridgePieces.NS=BRIDGE2 TileSet=19 -[Railroad Bridge] +[High Wooden Bridge] Kind=High -BridgePieces.EW=RAILBRDG1 -BridgePieces.NS=RAILBRDG2 -TileSet=37 \ No newline at end of file +BridgePieces.EW=BRIDGEB1 +BridgePieces.NS=BRIDGEB2 +TileSet=80 \ No newline at end of file diff --git a/src/TSMapEditor/Config/ConnectedOverlays.ini b/src/TSMapEditor/Config/ConnectedOverlays.ini index ba0c9443..cb929f7e 100644 --- a/src/TSMapEditor/Config/ConnectedOverlays.ini +++ b/src/TSMapEditor/Config/ConnectedOverlays.ini @@ -4,24 +4,31 @@ ; Configuration for the connected overlay painting tool [ConnectedOverlays] -0=BRIK -1=BRIK_DAMAGED -2=SBAG -3=SBAG_DAMAGED -4=BARB -5=BARB_DAMAGED -6=FENC -7=CYCL -8=CYCL_DAMAGED -9=WOOD -10=WOOD_DAMAGED -11=BRIK_NON_ISOMETRIC -12=SBAG_NON_ISOMETRIC -13=CYCL_NON_ISOMETRIC -14=WOOD_NON_ISOMETRIC -15=TRACKS +0=GAWALL +1=GAWALL_DAMAGED +2=GAWALL_VERY_DAMAGED +3=NAWALL +4=NAWALL_DAMAGED +5=NAWALL_VERY_DAMAGED +6=GAFWLL +7=GAFWLL_DAMAGED +8=GAFWLL_VERY_DAMAGED +9=GASAND +10=GASAND_DAMAGED +11=CAFNCB +12=CAFNCB_DAMAGED +13=CAFNCW +14=CAFNCW_DAMAGED +15=CAFNCP +16=CAFNCP_DAMAGED +17=CAKRMW +18=CAKRMW_DAMAGED +19=CAKRMW_VERY_DAMAGED +;20=TRACKS ; [Name] +; UIName=Display name [OPTIONAL] +; RelatedOverlays=Other connected overlays that this one can connect to [OPTIONAL] ; ConnectionMask=BitArray(8), whether the overlay can connect in those directions at all ; Order: NE, E, SE, S, SW, W, NW, N ; Frames=FrameCount @@ -29,872 +36,1147 @@ ; FrameN.FrameIndex=Overlay frame to use ; FrameN.ConnectsTo=BitArray(8), what sides this particular frame is connected to -[BRIK] -UIName=Concrete Wall -RelatedOverlays=BRIK_DAMAGED +[GAWALL] +UIName=Allied Wall ConnectionMask=10101010 +RelatedOverlays=GAWALL_DAMAGED,GAWALL_VERY_DAMAGED Frames=16 -Frame0.Overlay=BRIK +Frame0.Overlay=GAWALL Frame0.FrameIndex=0 Frame0.ConnectsTo=00000000 -Frame1.Overlay=BRIK +Frame1.Overlay=GAWALL Frame1.FrameIndex=1 Frame1.ConnectsTo=10000000 -Frame2.Overlay=BRIK +Frame2.Overlay=GAWALL Frame2.FrameIndex=2 Frame2.ConnectsTo=00100000 -Frame3.Overlay=BRIK +Frame3.Overlay=GAWALL Frame3.FrameIndex=3 Frame3.ConnectsTo=10100000 -Frame4.Overlay=BRIK +Frame4.Overlay=GAWALL Frame4.FrameIndex=4 Frame4.ConnectsTo=00001000 -Frame5.Overlay=BRIK +Frame5.Overlay=GAWALL Frame5.FrameIndex=5 Frame5.ConnectsTo=10001000 -Frame6.Overlay=BRIK +Frame6.Overlay=GAWALL Frame6.FrameIndex=6 Frame6.ConnectsTo=00101000 -Frame7.Overlay=BRIK +Frame7.Overlay=GAWALL Frame7.FrameIndex=7 Frame7.ConnectsTo=10101000 -Frame8.Overlay=BRIK +Frame8.Overlay=GAWALL Frame8.FrameIndex=8 Frame8.ConnectsTo=00000010 -Frame9.Overlay=BRIK +Frame9.Overlay=GAWALL Frame9.FrameIndex=9 Frame9.ConnectsTo=10000010 -Frame10.Overlay=BRIK +Frame10.Overlay=GAWALL Frame10.FrameIndex=10 Frame10.ConnectsTo=00100010 -Frame11.Overlay=BRIK +Frame11.Overlay=GAWALL Frame11.FrameIndex=11 Frame11.ConnectsTo=10100010 -Frame12.Overlay=BRIK +Frame12.Overlay=GAWALL Frame12.FrameIndex=12 Frame12.ConnectsTo=00001010 -Frame13.Overlay=BRIK +Frame13.Overlay=GAWALL Frame13.FrameIndex=13 Frame13.ConnectsTo=10001010 -Frame14.Overlay=BRIK +Frame14.Overlay=GAWALL Frame14.FrameIndex=14 Frame14.ConnectsTo=00101010 -Frame15.Overlay=BRIK +Frame15.Overlay=GAWALL Frame15.FrameIndex=15 Frame15.ConnectsTo=10101010 -[BRIK_DAMAGED] -UIName=Concrete Wall (Damaged) -RelatedOverlays=BRIK +[GAWALL_DAMAGED] +UIName=Allied Wall (Damaged) ConnectionMask=10101010 +RelatedOverlays=GAWALL,GAWALL_VERY_DAMAGED Frames=16 -Frame0.Overlay=BRIK +Frame0.Overlay=GAWALL Frame0.FrameIndex=16 Frame0.ConnectsTo=00000000 -Frame1.Overlay=BRIK +Frame1.Overlay=GAWALL Frame1.FrameIndex=17 Frame1.ConnectsTo=10000000 -Frame2.Overlay=BRIK +Frame2.Overlay=GAWALL Frame2.FrameIndex=18 Frame2.ConnectsTo=00100000 -Frame3.Overlay=BRIK +Frame3.Overlay=GAWALL Frame3.FrameIndex=19 Frame3.ConnectsTo=10100000 -Frame4.Overlay=BRIK +Frame4.Overlay=GAWALL Frame4.FrameIndex=20 Frame4.ConnectsTo=00001000 -Frame5.Overlay=BRIK +Frame5.Overlay=GAWALL Frame5.FrameIndex=21 Frame5.ConnectsTo=10001000 -Frame6.Overlay=BRIK +Frame6.Overlay=GAWALL Frame6.FrameIndex=22 Frame6.ConnectsTo=00101000 -Frame7.Overlay=BRIK +Frame7.Overlay=GAWALL Frame7.FrameIndex=23 Frame7.ConnectsTo=10101000 -Frame8.Overlay=BRIK +Frame8.Overlay=GAWALL Frame8.FrameIndex=24 Frame8.ConnectsTo=00000010 -Frame9.Overlay=BRIK +Frame9.Overlay=GAWALL Frame9.FrameIndex=25 Frame9.ConnectsTo=10000010 -Frame10.Overlay=BRIK +Frame10.Overlay=GAWALL Frame10.FrameIndex=26 Frame10.ConnectsTo=00100010 -Frame11.Overlay=BRIK +Frame11.Overlay=GAWALL Frame11.FrameIndex=27 Frame11.ConnectsTo=10100010 -Frame12.Overlay=BRIK +Frame12.Overlay=GAWALL Frame12.FrameIndex=28 Frame12.ConnectsTo=00001010 -Frame13.Overlay=BRIK +Frame13.Overlay=GAWALL Frame13.FrameIndex=29 Frame13.ConnectsTo=10001010 -Frame14.Overlay=BRIK +Frame14.Overlay=GAWALL Frame14.FrameIndex=30 Frame14.ConnectsTo=00101010 -Frame15.Overlay=BRIK +Frame15.Overlay=GAWALL Frame15.FrameIndex=31 Frame15.ConnectsTo=10101010 -[SBAG] -UIName=Sandbags +[GAWALL_VERY_DAMAGED] +UIName=Allied Wall (Very Damaged) ConnectionMask=10101010 +RelatedOverlays=GAWALL,GAWALL_DAMAGED Frames=16 -Frame0.Overlay=SBAG +Frame0.Overlay=GAWALL +Frame0.FrameIndex=32 +Frame0.ConnectsTo=00000000 +Frame1.Overlay=GAWALL +Frame1.FrameIndex=33 +Frame1.ConnectsTo=10000000 +Frame2.Overlay=GAWALL +Frame2.FrameIndex=34 +Frame2.ConnectsTo=00100000 +Frame3.Overlay=GAWALL +Frame3.FrameIndex=35 +Frame3.ConnectsTo=10100000 +Frame4.Overlay=GAWALL +Frame4.FrameIndex=36 +Frame4.ConnectsTo=00001000 +Frame5.Overlay=GAWALL +Frame5.FrameIndex=37 +Frame5.ConnectsTo=10001000 +Frame6.Overlay=GAWALL +Frame6.FrameIndex=38 +Frame6.ConnectsTo=00101000 +Frame7.Overlay=GAWALL +Frame7.FrameIndex=39 +Frame7.ConnectsTo=10101000 +Frame8.Overlay=GAWALL +Frame8.FrameIndex=40 +Frame8.ConnectsTo=00000010 +Frame9.Overlay=GAWALL +Frame9.FrameIndex=41 +Frame9.ConnectsTo=10000010 +Frame10.Overlay=GAWALL +Frame10.FrameIndex=42 +Frame10.ConnectsTo=00100010 +Frame11.Overlay=GAWALL +Frame11.FrameIndex=43 +Frame11.ConnectsTo=10100010 +Frame12.Overlay=GAWALL +Frame12.FrameIndex=44 +Frame12.ConnectsTo=00001010 +Frame13.Overlay=GAWALL +Frame13.FrameIndex=45 +Frame13.ConnectsTo=10001010 +Frame14.Overlay=GAWALL +Frame14.FrameIndex=46 +Frame14.ConnectsTo=00101010 +Frame15.Overlay=GAWALL +Frame15.FrameIndex=47 +Frame15.ConnectsTo=10101010 + +[NAWALL] +UIName=Soviet Wall +ConnectionMask=10101010 +RelatedOverlays=NAWALL_DAMAGED,NAWALL_VERY_DAMAGED +Frames=16 +Frame0.Overlay=NAWALL Frame0.FrameIndex=0 Frame0.ConnectsTo=00000000 -Frame1.Overlay=SBAG +Frame1.Overlay=NAWALL Frame1.FrameIndex=1 Frame1.ConnectsTo=10000000 -Frame2.Overlay=SBAG +Frame2.Overlay=NAWALL Frame2.FrameIndex=2 Frame2.ConnectsTo=00100000 -Frame3.Overlay=SBAG +Frame3.Overlay=NAWALL Frame3.FrameIndex=3 Frame3.ConnectsTo=10100000 -Frame4.Overlay=SBAG +Frame4.Overlay=NAWALL Frame4.FrameIndex=4 Frame4.ConnectsTo=00001000 -Frame5.Overlay=SBAG +Frame5.Overlay=NAWALL Frame5.FrameIndex=5 Frame5.ConnectsTo=10001000 -Frame6.Overlay=SBAG +Frame6.Overlay=NAWALL Frame6.FrameIndex=6 Frame6.ConnectsTo=00101000 -Frame7.Overlay=SBAG +Frame7.Overlay=NAWALL Frame7.FrameIndex=7 Frame7.ConnectsTo=10101000 -Frame8.Overlay=SBAG +Frame8.Overlay=NAWALL Frame8.FrameIndex=8 Frame8.ConnectsTo=00000010 -Frame9.Overlay=SBAG +Frame9.Overlay=NAWALL Frame9.FrameIndex=9 Frame9.ConnectsTo=10000010 -Frame10.Overlay=SBAG +Frame10.Overlay=NAWALL Frame10.FrameIndex=10 Frame10.ConnectsTo=00100010 -Frame11.Overlay=SBAG +Frame11.Overlay=NAWALL Frame11.FrameIndex=11 Frame11.ConnectsTo=10100010 -Frame12.Overlay=SBAG +Frame12.Overlay=NAWALL Frame12.FrameIndex=12 Frame12.ConnectsTo=00001010 -Frame13.Overlay=SBAG +Frame13.Overlay=NAWALL Frame13.FrameIndex=13 Frame13.ConnectsTo=10001010 -Frame14.Overlay=SBAG +Frame14.Overlay=NAWALL Frame14.FrameIndex=14 Frame14.ConnectsTo=00101010 -Frame15.Overlay=SBAG +Frame15.Overlay=NAWALL Frame15.FrameIndex=15 Frame15.ConnectsTo=10101010 -[SBAG_DAMAGED] -UIName=Sandbags (Damaged) -RelatedOverlays=SBAG +[NAWALL_DAMAGED] +UIName=Soviet Wall (Damaged) ConnectionMask=10101010 +RelatedOverlays=NAWALL,NAWALL_VERY_DAMAGED Frames=16 -Frame0.Overlay=SBAG +Frame0.Overlay=NAWALL Frame0.FrameIndex=16 Frame0.ConnectsTo=00000000 -Frame1.Overlay=SBAG +Frame1.Overlay=NAWALL Frame1.FrameIndex=17 Frame1.ConnectsTo=10000000 -Frame2.Overlay=SBAG +Frame2.Overlay=NAWALL Frame2.FrameIndex=18 Frame2.ConnectsTo=00100000 -Frame3.Overlay=SBAG +Frame3.Overlay=NAWALL Frame3.FrameIndex=19 Frame3.ConnectsTo=10100000 -Frame4.Overlay=SBAG +Frame4.Overlay=NAWALL Frame4.FrameIndex=20 Frame4.ConnectsTo=00001000 -Frame5.Overlay=SBAG +Frame5.Overlay=NAWALL Frame5.FrameIndex=21 Frame5.ConnectsTo=10001000 -Frame6.Overlay=SBAG +Frame6.Overlay=NAWALL Frame6.FrameIndex=22 Frame6.ConnectsTo=00101000 -Frame7.Overlay=SBAG +Frame7.Overlay=NAWALL Frame7.FrameIndex=23 Frame7.ConnectsTo=10101000 -Frame8.Overlay=SBAG +Frame8.Overlay=NAWALL Frame8.FrameIndex=24 Frame8.ConnectsTo=00000010 -Frame9.Overlay=SBAG +Frame9.Overlay=NAWALL Frame9.FrameIndex=25 Frame9.ConnectsTo=10000010 -Frame10.Overlay=SBAG +Frame10.Overlay=NAWALL Frame10.FrameIndex=26 Frame10.ConnectsTo=00100010 -Frame11.Overlay=SBAG +Frame11.Overlay=NAWALL Frame11.FrameIndex=27 Frame11.ConnectsTo=10100010 -Frame12.Overlay=SBAG +Frame12.Overlay=NAWALL Frame12.FrameIndex=28 Frame12.ConnectsTo=00001010 -Frame13.Overlay=SBAG +Frame13.Overlay=NAWALL Frame13.FrameIndex=29 Frame13.ConnectsTo=10001010 -Frame14.Overlay=SBAG +Frame14.Overlay=NAWALL Frame14.FrameIndex=30 Frame14.ConnectsTo=00101010 -Frame15.Overlay=SBAG +Frame15.Overlay=NAWALL Frame15.FrameIndex=31 Frame15.ConnectsTo=10101010 -[BARB] -UIName=Barbed Wire -RelatedOverlays=BARB_DAMAGED +[NAWALL_VERY_DAMAGED] +UIName=Soviet Wall (Very Damaged) ConnectionMask=10101010 +RelatedOverlays=NAWALL,NAWALL_DAMAGED Frames=16 -Frame0.Overlay=BARB +Frame0.Overlay=NAWALL +Frame0.FrameIndex=32 +Frame0.ConnectsTo=00000000 +Frame1.Overlay=NAWALL +Frame1.FrameIndex=33 +Frame1.ConnectsTo=10000000 +Frame2.Overlay=NAWALL +Frame2.FrameIndex=34 +Frame2.ConnectsTo=00100000 +Frame3.Overlay=NAWALL +Frame3.FrameIndex=35 +Frame3.ConnectsTo=10100000 +Frame4.Overlay=NAWALL +Frame4.FrameIndex=36 +Frame4.ConnectsTo=00001000 +Frame5.Overlay=NAWALL +Frame5.FrameIndex=37 +Frame5.ConnectsTo=10001000 +Frame6.Overlay=NAWALL +Frame6.FrameIndex=38 +Frame6.ConnectsTo=00101000 +Frame7.Overlay=NAWALL +Frame7.FrameIndex=39 +Frame7.ConnectsTo=10101000 +Frame8.Overlay=NAWALL +Frame8.FrameIndex=40 +Frame8.ConnectsTo=00000010 +Frame9.Overlay=NAWALL +Frame9.FrameIndex=41 +Frame9.ConnectsTo=10000010 +Frame10.Overlay=NAWALL +Frame10.FrameIndex=42 +Frame10.ConnectsTo=00100010 +Frame11.Overlay=NAWALL +Frame11.FrameIndex=43 +Frame11.ConnectsTo=10100010 +Frame12.Overlay=NAWALL +Frame12.FrameIndex=44 +Frame12.ConnectsTo=00001010 +Frame13.Overlay=NAWALL +Frame13.FrameIndex=45 +Frame13.ConnectsTo=10001010 +Frame14.Overlay=NAWALL +Frame14.FrameIndex=46 +Frame14.ConnectsTo=00101010 +Frame15.Overlay=NAWALL +Frame15.FrameIndex=47 +Frame15.ConnectsTo=10101010 + +[GAFWLL] +UIName=Yuri Citadel Wall +ConnectionMask=10101010 +RelatedOverlays=GAFWLL_DAMAGED,GAFWLL_VERY_DAMAGED +Frames=16 +Frame0.Overlay=GAFWLL Frame0.FrameIndex=0 Frame0.ConnectsTo=00000000 -Frame1.Overlay=BARB +Frame1.Overlay=GAFWLL Frame1.FrameIndex=1 Frame1.ConnectsTo=10000000 -Frame2.Overlay=BARB +Frame2.Overlay=GAFWLL Frame2.FrameIndex=2 Frame2.ConnectsTo=00100000 -Frame3.Overlay=BARB +Frame3.Overlay=GAFWLL Frame3.FrameIndex=3 Frame3.ConnectsTo=10100000 -Frame4.Overlay=BARB +Frame4.Overlay=GAFWLL Frame4.FrameIndex=4 Frame4.ConnectsTo=00001000 -Frame5.Overlay=BARB +Frame5.Overlay=GAFWLL Frame5.FrameIndex=5 Frame5.ConnectsTo=10001000 -Frame6.Overlay=BARB +Frame6.Overlay=GAFWLL Frame6.FrameIndex=6 Frame6.ConnectsTo=00101000 -Frame7.Overlay=BARB +Frame7.Overlay=GAFWLL Frame7.FrameIndex=7 Frame7.ConnectsTo=10101000 -Frame8.Overlay=BARB +Frame8.Overlay=GAFWLL Frame8.FrameIndex=8 Frame8.ConnectsTo=00000010 -Frame9.Overlay=BARB +Frame9.Overlay=GAFWLL Frame9.FrameIndex=9 Frame9.ConnectsTo=10000010 -Frame10.Overlay=BARB +Frame10.Overlay=GAFWLL Frame10.FrameIndex=10 Frame10.ConnectsTo=00100010 -Frame11.Overlay=BARB +Frame11.Overlay=GAFWLL Frame11.FrameIndex=11 Frame11.ConnectsTo=10100010 -Frame12.Overlay=BARB +Frame12.Overlay=GAFWLL Frame12.FrameIndex=12 Frame12.ConnectsTo=00001010 -Frame13.Overlay=BARB +Frame13.Overlay=GAFWLL Frame13.FrameIndex=13 Frame13.ConnectsTo=10001010 -Frame14.Overlay=BARB +Frame14.Overlay=GAFWLL Frame14.FrameIndex=14 Frame14.ConnectsTo=00101010 -Frame15.Overlay=BARB +Frame15.Overlay=GAFWLL Frame15.FrameIndex=15 Frame15.ConnectsTo=10101010 -[BARB_DAMAGED] -UIName=Barbed Wire (Damaged) -RelatedOverlays=BARB +[GAFWLL_DAMAGED] +UIName=Yuri Citadel Wall (Damaged) ConnectionMask=10101010 +RelatedOverlays=GAFWLL,GAFWLL_VERY_DAMAGED Frames=16 -Frame0.Overlay=BARB +Frame0.Overlay=GAFWLL Frame0.FrameIndex=16 Frame0.ConnectsTo=00000000 -Frame1.Overlay=BARB +Frame1.Overlay=GAFWLL Frame1.FrameIndex=17 Frame1.ConnectsTo=10000000 -Frame2.Overlay=BARB +Frame2.Overlay=GAFWLL Frame2.FrameIndex=18 Frame2.ConnectsTo=00100000 -Frame3.Overlay=BARB +Frame3.Overlay=GAFWLL Frame3.FrameIndex=19 Frame3.ConnectsTo=10100000 -Frame4.Overlay=BARB +Frame4.Overlay=GAFWLL Frame4.FrameIndex=20 Frame4.ConnectsTo=00001000 -Frame5.Overlay=BARB +Frame5.Overlay=GAFWLL Frame5.FrameIndex=21 Frame5.ConnectsTo=10001000 -Frame6.Overlay=BARB +Frame6.Overlay=GAFWLL Frame6.FrameIndex=22 Frame6.ConnectsTo=00101000 -Frame7.Overlay=BARB +Frame7.Overlay=GAFWLL Frame7.FrameIndex=23 Frame7.ConnectsTo=10101000 -Frame8.Overlay=BARB +Frame8.Overlay=GAFWLL Frame8.FrameIndex=24 Frame8.ConnectsTo=00000010 -Frame9.Overlay=BARB +Frame9.Overlay=GAFWLL Frame9.FrameIndex=25 Frame9.ConnectsTo=10000010 -Frame10.Overlay=BARB +Frame10.Overlay=GAFWLL Frame10.FrameIndex=26 Frame10.ConnectsTo=00100010 -Frame11.Overlay=BARB +Frame11.Overlay=GAFWLL Frame11.FrameIndex=27 Frame11.ConnectsTo=10100010 -Frame12.Overlay=BARB +Frame12.Overlay=GAFWLL Frame12.FrameIndex=28 Frame12.ConnectsTo=00001010 -Frame13.Overlay=BARB +Frame13.Overlay=GAFWLL Frame13.FrameIndex=29 Frame13.ConnectsTo=10001010 -Frame14.Overlay=BARB +Frame14.Overlay=GAFWLL Frame14.FrameIndex=30 Frame14.ConnectsTo=00101010 -Frame15.Overlay=BARB +Frame15.Overlay=GAFWLL Frame15.FrameIndex=31 Frame15.ConnectsTo=10101010 -[FENC] -UIName=Barbed Wire Fence +[GAFWLL_VERY_DAMAGED] +UIName=Yuri Citadel Wall (Very Damaged) ConnectionMask=10101010 +RelatedOverlays=GAFWLL,GAFWLL_DAMAGED Frames=16 -Frame0.Overlay=FENC -Frame0.FrameIndex=0 +Frame0.Overlay=GAFWLL +Frame0.FrameIndex=32 Frame0.ConnectsTo=00000000 -Frame1.Overlay=FENC -Frame1.FrameIndex=1 +Frame1.Overlay=GAFWLL +Frame1.FrameIndex=33 Frame1.ConnectsTo=10000000 -Frame2.Overlay=FENC -Frame2.FrameIndex=2 +Frame2.Overlay=GAFWLL +Frame2.FrameIndex=34 Frame2.ConnectsTo=00100000 -Frame3.Overlay=FENC -Frame3.FrameIndex=3 +Frame3.Overlay=GAFWLL +Frame3.FrameIndex=35 Frame3.ConnectsTo=10100000 -Frame4.Overlay=FENC -Frame4.FrameIndex=4 +Frame4.Overlay=GAFWLL +Frame4.FrameIndex=36 Frame4.ConnectsTo=00001000 -Frame5.Overlay=FENC -Frame5.FrameIndex=5 +Frame5.Overlay=GAFWLL +Frame5.FrameIndex=37 Frame5.ConnectsTo=10001000 -Frame6.Overlay=FENC -Frame6.FrameIndex=6 +Frame6.Overlay=GAFWLL +Frame6.FrameIndex=38 Frame6.ConnectsTo=00101000 -Frame7.Overlay=FENC -Frame7.FrameIndex=7 +Frame7.Overlay=GAFWLL +Frame7.FrameIndex=39 Frame7.ConnectsTo=10101000 -Frame8.Overlay=FENC -Frame8.FrameIndex=8 +Frame8.Overlay=GAFWLL +Frame8.FrameIndex=40 Frame8.ConnectsTo=00000010 -Frame9.Overlay=FENC -Frame9.FrameIndex=9 +Frame9.Overlay=GAFWLL +Frame9.FrameIndex=41 Frame9.ConnectsTo=10000010 -Frame10.Overlay=FENC -Frame10.FrameIndex=10 +Frame10.Overlay=GAFWLL +Frame10.FrameIndex=42 Frame10.ConnectsTo=00100010 -Frame11.Overlay=FENC -Frame11.FrameIndex=11 +Frame11.Overlay=GAFWLL +Frame11.FrameIndex=43 Frame11.ConnectsTo=10100010 -Frame12.Overlay=FENC -Frame12.FrameIndex=12 +Frame12.Overlay=GAFWLL +Frame12.FrameIndex=44 Frame12.ConnectsTo=00001010 -Frame13.Overlay=FENC -Frame13.FrameIndex=13 +Frame13.Overlay=GAFWLL +Frame13.FrameIndex=45 Frame13.ConnectsTo=10001010 -Frame14.Overlay=FENC -Frame14.FrameIndex=14 +Frame14.Overlay=GAFWLL +Frame14.FrameIndex=46 Frame14.ConnectsTo=00101010 -Frame15.Overlay=FENC -Frame15.FrameIndex=15 +Frame15.Overlay=GAFWLL +Frame15.FrameIndex=47 Frame15.ConnectsTo=10101010 -[CYCL] -UIName=Chain Link -RelatedOverlays=CYCL_DAMAGED +[GASAND] +UIName=Sandbags ConnectionMask=10101010 +RelatedOverlays=GASAND_DAMAGED Frames=16 -Frame0.Overlay=CYCL +Frame0.Overlay=GASAND Frame0.FrameIndex=0 Frame0.ConnectsTo=00000000 -Frame1.Overlay=CYCL +Frame1.Overlay=GASAND Frame1.FrameIndex=1 Frame1.ConnectsTo=10000000 -Frame2.Overlay=CYCL +Frame2.Overlay=GASAND Frame2.FrameIndex=2 Frame2.ConnectsTo=00100000 -Frame3.Overlay=CYCL +Frame3.Overlay=GASAND Frame3.FrameIndex=3 Frame3.ConnectsTo=10100000 -Frame4.Overlay=CYCL +Frame4.Overlay=GASAND Frame4.FrameIndex=4 Frame4.ConnectsTo=00001000 -Frame5.Overlay=CYCL +Frame5.Overlay=GASAND Frame5.FrameIndex=5 Frame5.ConnectsTo=10001000 -Frame6.Overlay=CYCL +Frame6.Overlay=GASAND Frame6.FrameIndex=6 Frame6.ConnectsTo=00101000 -Frame7.Overlay=CYCL +Frame7.Overlay=GASAND Frame7.FrameIndex=7 Frame7.ConnectsTo=10101000 -Frame8.Overlay=CYCL +Frame8.Overlay=GASAND Frame8.FrameIndex=8 Frame8.ConnectsTo=00000010 -Frame9.Overlay=CYCL +Frame9.Overlay=GASAND Frame9.FrameIndex=9 Frame9.ConnectsTo=10000010 -Frame10.Overlay=CYCL +Frame10.Overlay=GASAND Frame10.FrameIndex=10 Frame10.ConnectsTo=00100010 -Frame11.Overlay=CYCL +Frame11.Overlay=GASAND Frame11.FrameIndex=11 Frame11.ConnectsTo=10100010 -Frame12.Overlay=CYCL +Frame12.Overlay=GASAND Frame12.FrameIndex=12 Frame12.ConnectsTo=00001010 -Frame13.Overlay=CYCL +Frame13.Overlay=GASAND Frame13.FrameIndex=13 Frame13.ConnectsTo=10001010 -Frame14.Overlay=CYCL +Frame14.Overlay=GASAND Frame14.FrameIndex=14 Frame14.ConnectsTo=00101010 -Frame15.Overlay=CYCL +Frame15.Overlay=GASAND Frame15.FrameIndex=15 Frame15.ConnectsTo=10101010 -[CYCL_DAMAGED] -UIName=Chain Link (Damaged) -RelatedOverlays=CYCL +[GASAND_DAMAGED] +UIName=Sandbags (Damaged) ConnectionMask=10101010 +RelatedOverlays=GASAND Frames=16 -Frame0.Overlay=CYCL +Frame0.Overlay=GASAND Frame0.FrameIndex=16 Frame0.ConnectsTo=00000000 -Frame1.Overlay=CYCL +Frame1.Overlay=GASAND Frame1.FrameIndex=17 Frame1.ConnectsTo=10000000 -Frame2.Overlay=CYCL +Frame2.Overlay=GASAND Frame2.FrameIndex=18 Frame2.ConnectsTo=00100000 -Frame3.Overlay=CYCL +Frame3.Overlay=GASAND Frame3.FrameIndex=19 Frame3.ConnectsTo=10100000 -Frame4.Overlay=CYCL +Frame4.Overlay=GASAND Frame4.FrameIndex=20 Frame4.ConnectsTo=00001000 -Frame5.Overlay=CYCL +Frame5.Overlay=GASAND Frame5.FrameIndex=21 Frame5.ConnectsTo=10001000 -Frame6.Overlay=CYCL +Frame6.Overlay=GASAND Frame6.FrameIndex=22 Frame6.ConnectsTo=00101000 -Frame7.Overlay=CYCL +Frame7.Overlay=GASAND Frame7.FrameIndex=23 Frame7.ConnectsTo=10101000 -Frame8.Overlay=CYCL +Frame8.Overlay=GASAND Frame8.FrameIndex=24 Frame8.ConnectsTo=00000010 -Frame9.Overlay=CYCL +Frame9.Overlay=GASAND Frame9.FrameIndex=25 Frame9.ConnectsTo=10000010 -Frame10.Overlay=CYCL +Frame10.Overlay=GASAND Frame10.FrameIndex=26 Frame10.ConnectsTo=00100010 -Frame11.Overlay=CYCL +Frame11.Overlay=GASAND Frame11.FrameIndex=27 Frame11.ConnectsTo=10100010 -Frame12.Overlay=CYCL +Frame12.Overlay=GASAND Frame12.FrameIndex=28 Frame12.ConnectsTo=00001010 -Frame13.Overlay=CYCL +Frame13.Overlay=GASAND Frame13.FrameIndex=29 Frame13.ConnectsTo=10001010 -Frame14.Overlay=CYCL +Frame14.Overlay=GASAND Frame14.FrameIndex=30 Frame14.ConnectsTo=00101010 -Frame15.Overlay=CYCL +Frame15.Overlay=GASAND Frame15.FrameIndex=31 Frame15.ConnectsTo=10101010 -[WOOD] -UIName=Wooden Fence -RelatedOverlays=WOOD_DAMAGED +[CAFNCB] +UIName=Black Fence ConnectionMask=10101010 +RelatedOverlays=CAFNCB_DAMAGED Frames=16 -Frame0.Overlay=WOOD +Frame0.Overlay=CAFNCB Frame0.FrameIndex=0 Frame0.ConnectsTo=00000000 -Frame1.Overlay=WOOD +Frame1.Overlay=CAFNCB Frame1.FrameIndex=1 Frame1.ConnectsTo=10000000 -Frame2.Overlay=WOOD +Frame2.Overlay=CAFNCB Frame2.FrameIndex=2 Frame2.ConnectsTo=00100000 -Frame3.Overlay=WOOD +Frame3.Overlay=CAFNCB Frame3.FrameIndex=3 Frame3.ConnectsTo=10100000 -Frame4.Overlay=WOOD +Frame4.Overlay=CAFNCB Frame4.FrameIndex=4 Frame4.ConnectsTo=00001000 -Frame5.Overlay=WOOD +Frame5.Overlay=CAFNCB Frame5.FrameIndex=5 Frame5.ConnectsTo=10001000 -Frame6.Overlay=WOOD +Frame6.Overlay=CAFNCB Frame6.FrameIndex=6 Frame6.ConnectsTo=00101000 -Frame7.Overlay=WOOD +Frame7.Overlay=CAFNCB Frame7.FrameIndex=7 Frame7.ConnectsTo=10101000 -Frame8.Overlay=WOOD +Frame8.Overlay=CAFNCB Frame8.FrameIndex=8 Frame8.ConnectsTo=00000010 -Frame9.Overlay=WOOD +Frame9.Overlay=CAFNCB Frame9.FrameIndex=9 Frame9.ConnectsTo=10000010 -Frame10.Overlay=WOOD +Frame10.Overlay=CAFNCB Frame10.FrameIndex=10 Frame10.ConnectsTo=00100010 -Frame11.Overlay=WOOD +Frame11.Overlay=CAFNCB Frame11.FrameIndex=11 Frame11.ConnectsTo=10100010 -Frame12.Overlay=WOOD +Frame12.Overlay=CAFNCB Frame12.FrameIndex=12 Frame12.ConnectsTo=00001010 -Frame13.Overlay=WOOD +Frame13.Overlay=CAFNCB Frame13.FrameIndex=13 Frame13.ConnectsTo=10001010 -Frame14.Overlay=WOOD +Frame14.Overlay=CAFNCB Frame14.FrameIndex=14 Frame14.ConnectsTo=00101010 -Frame15.Overlay=WOOD +Frame15.Overlay=CAFNCB Frame15.FrameIndex=15 Frame15.ConnectsTo=10101010 -[WOOD_DAMAGED] -UIName=Wooden Fence (Damaged) -RelatedOverlays=WOOD +[CAFNCB_DAMAGED] +UIName=Black Fence (Damaged) ConnectionMask=10101010 +RelatedOverlays=CAFNCB Frames=16 -Frame0.Overlay=WOOD +Frame0.Overlay=CAFNCB Frame0.FrameIndex=16 Frame0.ConnectsTo=00000000 -Frame1.Overlay=WOOD +Frame1.Overlay=CAFNCB Frame1.FrameIndex=17 Frame1.ConnectsTo=10000000 -Frame2.Overlay=WOOD +Frame2.Overlay=CAFNCB Frame2.FrameIndex=18 Frame2.ConnectsTo=00100000 -Frame3.Overlay=WOOD +Frame3.Overlay=CAFNCB Frame3.FrameIndex=19 Frame3.ConnectsTo=10100000 -Frame4.Overlay=WOOD +Frame4.Overlay=CAFNCB Frame4.FrameIndex=20 Frame4.ConnectsTo=00001000 -Frame5.Overlay=WOOD +Frame5.Overlay=CAFNCB Frame5.FrameIndex=21 Frame5.ConnectsTo=10001000 -Frame6.Overlay=WOOD +Frame6.Overlay=CAFNCB Frame6.FrameIndex=22 Frame6.ConnectsTo=00101000 -Frame7.Overlay=WOOD +Frame7.Overlay=CAFNCB Frame7.FrameIndex=23 Frame7.ConnectsTo=10101000 -Frame8.Overlay=WOOD +Frame8.Overlay=CAFNCB Frame8.FrameIndex=24 Frame8.ConnectsTo=00000010 -Frame9.Overlay=WOOD +Frame9.Overlay=CAFNCB Frame9.FrameIndex=25 Frame9.ConnectsTo=10000010 -Frame10.Overlay=WOOD +Frame10.Overlay=CAFNCB Frame10.FrameIndex=26 Frame10.ConnectsTo=00100010 -Frame11.Overlay=WOOD +Frame11.Overlay=CAFNCB Frame11.FrameIndex=27 Frame11.ConnectsTo=10100010 -Frame12.Overlay=WOOD +Frame12.Overlay=CAFNCB Frame12.FrameIndex=28 Frame12.ConnectsTo=00001010 -Frame13.Overlay=WOOD +Frame13.Overlay=CAFNCB Frame13.FrameIndex=29 Frame13.ConnectsTo=10001010 -Frame14.Overlay=WOOD +Frame14.Overlay=CAFNCB Frame14.FrameIndex=30 Frame14.ConnectsTo=00101010 -Frame15.Overlay=WOOD +Frame15.Overlay=CAFNCB Frame15.FrameIndex=31 Frame15.ConnectsTo=10101010 -[BRIK_NON_ISOMETRIC] -UIName=Concrete Wall (Non-Isometric) +[CAFNCW] +UIName=White Fence ConnectionMask=10101010 +RelatedOverlays=CAFNCW_DAMAGED Frames=16 -Frame0.Overlay=BRIK2 +Frame0.Overlay=CAFNCW Frame0.FrameIndex=0 Frame0.ConnectsTo=00000000 -Frame1.Overlay=BRIK2 +Frame1.Overlay=CAFNCW Frame1.FrameIndex=1 Frame1.ConnectsTo=10000000 -Frame2.Overlay=BRIK2 +Frame2.Overlay=CAFNCW Frame2.FrameIndex=2 Frame2.ConnectsTo=00100000 -Frame3.Overlay=BRIK2 +Frame3.Overlay=CAFNCW Frame3.FrameIndex=3 Frame3.ConnectsTo=10100000 -Frame4.Overlay=BRIK2 +Frame4.Overlay=CAFNCW Frame4.FrameIndex=4 Frame4.ConnectsTo=00001000 -Frame5.Overlay=BRIK2 +Frame5.Overlay=CAFNCW Frame5.FrameIndex=5 Frame5.ConnectsTo=10001000 -Frame6.Overlay=BRIK2 +Frame6.Overlay=CAFNCW Frame6.FrameIndex=6 Frame6.ConnectsTo=00101000 -Frame7.Overlay=BRIK2 +Frame7.Overlay=CAFNCW Frame7.FrameIndex=7 Frame7.ConnectsTo=10101000 -Frame8.Overlay=BRIK2 +Frame8.Overlay=CAFNCW Frame8.FrameIndex=8 Frame8.ConnectsTo=00000010 -Frame9.Overlay=BRIK2 +Frame9.Overlay=CAFNCW Frame9.FrameIndex=9 Frame9.ConnectsTo=10000010 -Frame10.Overlay=BRIK2 +Frame10.Overlay=CAFNCW Frame10.FrameIndex=10 Frame10.ConnectsTo=00100010 -Frame11.Overlay=BRIK2 +Frame11.Overlay=CAFNCW Frame11.FrameIndex=11 Frame11.ConnectsTo=10100010 -Frame12.Overlay=BRIK2 +Frame12.Overlay=CAFNCW Frame12.FrameIndex=12 Frame12.ConnectsTo=00001010 -Frame13.Overlay=BRIK2 +Frame13.Overlay=CAFNCW Frame13.FrameIndex=13 Frame13.ConnectsTo=10001010 -Frame14.Overlay=BRIK2 +Frame14.Overlay=CAFNCW Frame14.FrameIndex=14 Frame14.ConnectsTo=00101010 -Frame15.Overlay=BRIK2 +Frame15.Overlay=CAFNCW Frame15.FrameIndex=15 Frame15.ConnectsTo=10101010 +[CAFNCW_DAMAGED] +UIName=White Fence (Damaged) +ConnectionMask=10101010 +RelatedOverlays=CAFNCW +Frames=16 +Frame0.Overlay=CAFNCW +Frame0.FrameIndex=16 +Frame0.ConnectsTo=00000000 +Frame1.Overlay=CAFNCW +Frame1.FrameIndex=17 +Frame1.ConnectsTo=10000000 +Frame2.Overlay=CAFNCW +Frame2.FrameIndex=18 +Frame2.ConnectsTo=00100000 +Frame3.Overlay=CAFNCW +Frame3.FrameIndex=19 +Frame3.ConnectsTo=10100000 +Frame4.Overlay=CAFNCW +Frame4.FrameIndex=20 +Frame4.ConnectsTo=00001000 +Frame5.Overlay=CAFNCW +Frame5.FrameIndex=21 +Frame5.ConnectsTo=10001000 +Frame6.Overlay=CAFNCW +Frame6.FrameIndex=22 +Frame6.ConnectsTo=00101000 +Frame7.Overlay=CAFNCW +Frame7.FrameIndex=23 +Frame7.ConnectsTo=10101000 +Frame8.Overlay=CAFNCW +Frame8.FrameIndex=24 +Frame8.ConnectsTo=00000010 +Frame9.Overlay=CAFNCW +Frame9.FrameIndex=25 +Frame9.ConnectsTo=10000010 +Frame10.Overlay=CAFNCW +Frame10.FrameIndex=26 +Frame10.ConnectsTo=00100010 +Frame11.Overlay=CAFNCW +Frame11.FrameIndex=27 +Frame11.ConnectsTo=10100010 +Frame12.Overlay=CAFNCW +Frame12.FrameIndex=28 +Frame12.ConnectsTo=00001010 +Frame13.Overlay=CAFNCW +Frame13.FrameIndex=29 +Frame13.ConnectsTo=10001010 +Frame14.Overlay=CAFNCW +Frame14.FrameIndex=30 +Frame14.ConnectsTo=00101010 +Frame15.Overlay=CAFNCW +Frame15.FrameIndex=31 +Frame15.ConnectsTo=10101010 -[SBAG_NON_ISOMETRIC] -UIName=Sandbags (Non-Isometric) +[CAFNCP] +UIName=Prison Camp Fence ConnectionMask=10101010 +RelatedOverlays=CAFNCP_DAMAGED Frames=16 -Frame0.Overlay=SBAG2 +Frame0.Overlay=CAFNCP Frame0.FrameIndex=0 Frame0.ConnectsTo=00000000 -Frame1.Overlay=SBAG2 +Frame1.Overlay=CAFNCP Frame1.FrameIndex=1 Frame1.ConnectsTo=10000000 -Frame2.Overlay=SBAG2 +Frame2.Overlay=CAFNCP Frame2.FrameIndex=2 Frame2.ConnectsTo=00100000 -Frame3.Overlay=SBAG2 +Frame3.Overlay=CAFNCP Frame3.FrameIndex=3 Frame3.ConnectsTo=10100000 -Frame4.Overlay=SBAG2 +Frame4.Overlay=CAFNCP Frame4.FrameIndex=4 Frame4.ConnectsTo=00001000 -Frame5.Overlay=SBAG2 +Frame5.Overlay=CAFNCP Frame5.FrameIndex=5 Frame5.ConnectsTo=10001000 -Frame6.Overlay=SBAG2 +Frame6.Overlay=CAFNCP Frame6.FrameIndex=6 Frame6.ConnectsTo=00101000 -Frame7.Overlay=SBAG2 +Frame7.Overlay=CAFNCP Frame7.FrameIndex=7 Frame7.ConnectsTo=10101000 -Frame8.Overlay=SBAG2 +Frame8.Overlay=CAFNCP Frame8.FrameIndex=8 Frame8.ConnectsTo=00000010 -Frame9.Overlay=SBAG2 +Frame9.Overlay=CAFNCP Frame9.FrameIndex=9 Frame9.ConnectsTo=10000010 -Frame10.Overlay=SBAG2 +Frame10.Overlay=CAFNCP Frame10.FrameIndex=10 Frame10.ConnectsTo=00100010 -Frame11.Overlay=SBAG2 +Frame11.Overlay=CAFNCP Frame11.FrameIndex=11 Frame11.ConnectsTo=10100010 -Frame12.Overlay=SBAG2 +Frame12.Overlay=CAFNCP Frame12.FrameIndex=12 Frame12.ConnectsTo=00001010 -Frame13.Overlay=SBAG2 +Frame13.Overlay=CAFNCP Frame13.FrameIndex=13 Frame13.ConnectsTo=10001010 -Frame14.Overlay=SBAG2 +Frame14.Overlay=CAFNCP Frame14.FrameIndex=14 Frame14.ConnectsTo=00101010 -Frame15.Overlay=SBAG2 +Frame15.Overlay=CAFNCP Frame15.FrameIndex=15 Frame15.ConnectsTo=10101010 -[CYCL_NON_ISOMETRIC] -UIName=Chain Link (Non-Isometric) +[CAFNCP_DAMAGED] +UIName=Prison Camp Fence (Damaged) ConnectionMask=10101010 +RelatedOverlays=CAFNCP Frames=16 -Frame0.Overlay=CYCL2 -Frame0.FrameIndex=0 +Frame0.Overlay=CAFNCP +Frame0.FrameIndex=16 Frame0.ConnectsTo=00000000 -Frame1.Overlay=CYCL2 -Frame1.FrameIndex=1 +Frame1.Overlay=CAFNCP +Frame1.FrameIndex=17 Frame1.ConnectsTo=10000000 -Frame2.Overlay=CYCL2 -Frame2.FrameIndex=2 +Frame2.Overlay=CAFNCP +Frame2.FrameIndex=18 Frame2.ConnectsTo=00100000 -Frame3.Overlay=CYCL2 -Frame3.FrameIndex=3 +Frame3.Overlay=CAFNCP +Frame3.FrameIndex=19 Frame3.ConnectsTo=10100000 -Frame4.Overlay=CYCL2 -Frame4.FrameIndex=4 +Frame4.Overlay=CAFNCP +Frame4.FrameIndex=20 Frame4.ConnectsTo=00001000 -Frame5.Overlay=CYCL2 -Frame5.FrameIndex=5 +Frame5.Overlay=CAFNCP +Frame5.FrameIndex=21 Frame5.ConnectsTo=10001000 -Frame6.Overlay=CYCL2 -Frame6.FrameIndex=6 +Frame6.Overlay=CAFNCP +Frame6.FrameIndex=22 Frame6.ConnectsTo=00101000 -Frame7.Overlay=CYCL2 -Frame7.FrameIndex=7 +Frame7.Overlay=CAFNCP +Frame7.FrameIndex=23 Frame7.ConnectsTo=10101000 -Frame8.Overlay=CYCL2 -Frame8.FrameIndex=8 +Frame8.Overlay=CAFNCP +Frame8.FrameIndex=24 Frame8.ConnectsTo=00000010 -Frame9.Overlay=CYCL2 -Frame9.FrameIndex=9 +Frame9.Overlay=CAFNCP +Frame9.FrameIndex=25 Frame9.ConnectsTo=10000010 -Frame10.Overlay=CYCL2 -Frame10.FrameIndex=10 +Frame10.Overlay=CAFNCP +Frame10.FrameIndex=26 Frame10.ConnectsTo=00100010 -Frame11.Overlay=CYCL2 -Frame11.FrameIndex=11 +Frame11.Overlay=CAFNCP +Frame11.FrameIndex=27 Frame11.ConnectsTo=10100010 -Frame12.Overlay=CYCL2 -Frame12.FrameIndex=12 +Frame12.Overlay=CAFNCP +Frame12.FrameIndex=28 Frame12.ConnectsTo=00001010 -Frame13.Overlay=CYCL2 -Frame13.FrameIndex=13 +Frame13.Overlay=CAFNCP +Frame13.FrameIndex=29 Frame13.ConnectsTo=10001010 -Frame14.Overlay=CYCL2 -Frame14.FrameIndex=14 +Frame14.Overlay=CAFNCP +Frame14.FrameIndex=30 Frame14.ConnectsTo=00101010 -Frame15.Overlay=CYCL2 -Frame15.FrameIndex=15 +Frame15.Overlay=CAFNCP +Frame15.FrameIndex=31 Frame15.ConnectsTo=10101010 -[WOOD_NON_ISOMETRIC] -UIName=Wooden Fence (Non-Isometric) +[CAKRMW] +UIName=Kremlin Wall ConnectionMask=10101010 +RelatedOverlays=CAKRMW_DAMAGED,CAKRMW_VERY_DAMAGED Frames=16 -Frame0.Overlay=WOOD2 +Frame0.Overlay=CAKRMW Frame0.FrameIndex=0 Frame0.ConnectsTo=00000000 -Frame1.Overlay=WOOD2 +Frame1.Overlay=CAKRMW Frame1.FrameIndex=1 Frame1.ConnectsTo=10000000 -Frame2.Overlay=WOOD2 +Frame2.Overlay=CAKRMW Frame2.FrameIndex=2 Frame2.ConnectsTo=00100000 -Frame3.Overlay=WOOD2 +Frame3.Overlay=CAKRMW Frame3.FrameIndex=3 Frame3.ConnectsTo=10100000 -Frame4.Overlay=WOOD2 +Frame4.Overlay=CAKRMW Frame4.FrameIndex=4 Frame4.ConnectsTo=00001000 -Frame5.Overlay=WOOD2 +Frame5.Overlay=CAKRMW Frame5.FrameIndex=5 Frame5.ConnectsTo=10001000 -Frame6.Overlay=WOOD2 +Frame6.Overlay=CAKRMW Frame6.FrameIndex=6 Frame6.ConnectsTo=00101000 -Frame7.Overlay=WOOD2 +Frame7.Overlay=CAKRMW Frame7.FrameIndex=7 Frame7.ConnectsTo=10101000 -Frame8.Overlay=WOOD2 +Frame8.Overlay=CAKRMW Frame8.FrameIndex=8 Frame8.ConnectsTo=00000010 -Frame9.Overlay=WOOD2 +Frame9.Overlay=CAKRMW Frame9.FrameIndex=9 Frame9.ConnectsTo=10000010 -Frame10.Overlay=WOOD2 +Frame10.Overlay=CAKRMW Frame10.FrameIndex=10 Frame10.ConnectsTo=00100010 -Frame11.Overlay=WOOD2 +Frame11.Overlay=CAKRMW Frame11.FrameIndex=11 Frame11.ConnectsTo=10100010 -Frame12.Overlay=WOOD2 +Frame12.Overlay=CAKRMW Frame12.FrameIndex=12 Frame12.ConnectsTo=00001010 -Frame13.Overlay=WOOD2 +Frame13.Overlay=CAKRMW Frame13.FrameIndex=13 Frame13.ConnectsTo=10001010 -Frame14.Overlay=WOOD2 +Frame14.Overlay=CAKRMW Frame14.FrameIndex=14 Frame14.ConnectsTo=00101010 -Frame15.Overlay=WOOD2 +Frame15.Overlay=CAKRMW Frame15.FrameIndex=15 Frame15.ConnectsTo=10101010 +[CAKRMW_DAMAGED] +UIName=Kremlin Wall (Damaged) +ConnectionMask=10101010 +RelatedOverlays=CAKRMW,CAKRMW_VERY_DAMAGED +Frames=16 +Frame0.Overlay=CAKRMW +Frame0.FrameIndex=16 +Frame0.ConnectsTo=00000000 +Frame1.Overlay=CAKRMW +Frame1.FrameIndex=17 +Frame1.ConnectsTo=10000000 +Frame2.Overlay=CAKRMW +Frame2.FrameIndex=18 +Frame2.ConnectsTo=00100000 +Frame3.Overlay=CAKRMW +Frame3.FrameIndex=19 +Frame3.ConnectsTo=10100000 +Frame4.Overlay=CAKRMW +Frame4.FrameIndex=20 +Frame4.ConnectsTo=00001000 +Frame5.Overlay=CAKRMW +Frame5.FrameIndex=21 +Frame5.ConnectsTo=10001000 +Frame6.Overlay=CAKRMW +Frame6.FrameIndex=22 +Frame6.ConnectsTo=00101000 +Frame7.Overlay=CAKRMW +Frame7.FrameIndex=23 +Frame7.ConnectsTo=10101000 +Frame8.Overlay=CAKRMW +Frame8.FrameIndex=24 +Frame8.ConnectsTo=00000010 +Frame9.Overlay=CAKRMW +Frame9.FrameIndex=25 +Frame9.ConnectsTo=10000010 +Frame10.Overlay=CAKRMW +Frame10.FrameIndex=26 +Frame10.ConnectsTo=00100010 +Frame11.Overlay=CAKRMW +Frame11.FrameIndex=27 +Frame11.ConnectsTo=10100010 +Frame12.Overlay=CAKRMW +Frame12.FrameIndex=28 +Frame12.ConnectsTo=00001010 +Frame13.Overlay=CAKRMW +Frame13.FrameIndex=29 +Frame13.ConnectsTo=10001010 +Frame14.Overlay=CAKRMW +Frame14.FrameIndex=30 +Frame14.ConnectsTo=00101010 +Frame15.Overlay=CAKRMW +Frame15.FrameIndex=31 +Frame15.ConnectsTo=10101010 + +[CAKRMW_VERY_DAMAGED] +UIName=Kremlin Wall (Very Damaged) +ConnectionMask=10101010 +RelatedOverlays=CAKRMW,CAKRMW_DAMAGED +Frames=16 +Frame0.Overlay=CAKRMW +Frame0.FrameIndex=32 +Frame0.ConnectsTo=00000000 +Frame1.Overlay=CAKRMW +Frame1.FrameIndex=33 +Frame1.ConnectsTo=10000000 +Frame2.Overlay=CAKRMW +Frame2.FrameIndex=34 +Frame2.ConnectsTo=00100000 +Frame3.Overlay=CAKRMW +Frame3.FrameIndex=35 +Frame3.ConnectsTo=10100000 +Frame4.Overlay=CAKRMW +Frame4.FrameIndex=36 +Frame4.ConnectsTo=00001000 +Frame5.Overlay=CAKRMW +Frame5.FrameIndex=37 +Frame5.ConnectsTo=10001000 +Frame6.Overlay=CAKRMW +Frame6.FrameIndex=38 +Frame6.ConnectsTo=00101000 +Frame7.Overlay=CAKRMW +Frame7.FrameIndex=39 +Frame7.ConnectsTo=10101000 +Frame8.Overlay=CAKRMW +Frame8.FrameIndex=40 +Frame8.ConnectsTo=00000010 +Frame9.Overlay=CAKRMW +Frame9.FrameIndex=41 +Frame9.ConnectsTo=10000010 +Frame10.Overlay=CAKRMW +Frame10.FrameIndex=42 +Frame10.ConnectsTo=00100010 +Frame11.Overlay=CAKRMW +Frame11.FrameIndex=43 +Frame11.ConnectsTo=10100010 +Frame12.Overlay=CAKRMW +Frame12.FrameIndex=44 +Frame12.ConnectsTo=00001010 +Frame13.Overlay=CAKRMW +Frame13.FrameIndex=45 +Frame13.ConnectsTo=10001010 +Frame14.Overlay=CAKRMW +Frame14.FrameIndex=46 +Frame14.ConnectsTo=00101010 +Frame15.Overlay=CAKRMW +Frame15.FrameIndex=47 +Frame15.ConnectsTo=10101010 + [TRACKS] UIName=Tracks ConnectionMask=11111111 Frames=20 Frame0.Overlay=TRACKS01 Frame0.FrameIndex=0 -Frame0.ConnectsTo=00010001 +Frame0.ConnectsTo=10000001 Frame1.Overlay=TRACKS01 Frame1.FrameIndex=0 -Frame1.ConnectsTo=00000001 +Frame1.ConnectsTo=10000000 Frame2.Overlay=TRACKS01 Frame2.FrameIndex=0 -Frame2.ConnectsTo=00010000 +Frame2.ConnectsTo=00000001 Frame3.Overlay=TRACKS02 Frame3.FrameIndex=0 -Frame3.ConnectsTo=01000100 +Frame3.ConnectsTo=00100100 Frame4.Overlay=TRACKS02 Frame4.FrameIndex=0 -Frame4.ConnectsTo=00000100 +Frame4.ConnectsTo=00100000 Frame5.Overlay=TRACKS02 Frame5.FrameIndex=0 -Frame5.ConnectsTo=01000000 +Frame5.ConnectsTo=00000100 Frame6.Overlay=TRACKS03 Frame6.FrameIndex=0 -Frame6.ConnectsTo=10001000 +Frame6.ConnectsTo=00011000 Frame7.Overlay=TRACKS03 Frame7.FrameIndex=0 -Frame7.ConnectsTo=10000000 +Frame7.ConnectsTo=00010000 Frame8.Overlay=TRACKS03 Frame8.FrameIndex=0 Frame8.ConnectsTo=00001000 Frame9.Overlay=TRACKS04 Frame9.FrameIndex=0 -Frame9.ConnectsTo=00100010 +Frame9.ConnectsTo=01000010 Frame10.Overlay=TRACKS04 Frame10.FrameIndex=0 -Frame10.ConnectsTo=00000010 +Frame10.ConnectsTo=01000000 Frame11.Overlay=TRACKS04 Frame11.FrameIndex=0 -Frame11.ConnectsTo=00100000 +Frame11.ConnectsTo=00000010 Frame12.Overlay=TRACKS05 Frame12.FrameIndex=0 -Frame12.ConnectsTo=10010000 +Frame12.ConnectsTo=00010001 Frame13.Overlay=TRACKS06 Frame13.FrameIndex=0 -Frame13.ConnectsTo=00010010 +Frame13.ConnectsTo=01000001 Frame14.Overlay=TRACKS07 Frame14.FrameIndex=0 -Frame14.ConnectsTo=00100001 +Frame14.ConnectsTo=10000010 Frame15.Overlay=TRACKS08 Frame15.FrameIndex=0 -Frame15.ConnectsTo=00001001 +Frame15.ConnectsTo=10001000 Frame16.Overlay=TRACKS09 Frame16.FrameIndex=0 -Frame16.ConnectsTo=10000100 +Frame16.ConnectsTo=00110000 Frame17.Overlay=TRACKS10 Frame17.FrameIndex=0 -Frame17.ConnectsTo=00100100 +Frame17.ConnectsTo=00100010 Frame18.Overlay=TRACKS11 Frame18.FrameIndex=0 -Frame18.ConnectsTo=01000010 +Frame18.ConnectsTo=01000100 Frame19.Overlay=TRACKS12 Frame19.FrameIndex=0 -Frame19.ConnectsTo=01001000 +Frame19.ConnectsTo=00001100 \ No newline at end of file diff --git a/src/TSMapEditor/Config/Constants.ini b/src/TSMapEditor/Config/Constants.ini index 563a0d21..67d3214e 100644 --- a/src/TSMapEditor/Config/Constants.ini +++ b/src/TSMapEditor/Config/Constants.ini @@ -1,4 +1,4 @@ -; C&C World-Altering Editor (WAE) +; C&C World-Altering Editor (WAE) ; https://github.com/Rampastring/WorldAlteringEditor ; This file defines various constants used in the editor. @@ -6,17 +6,17 @@ [Constants] ; Cell Size. 48x24 for TS, 60x30 for RA2. -CellSizeX=48 -CellSizeY=24 +CellSizeX=60 +CellSizeY=30 ; How much memory is reserved for the colors of a single sub-tile of a full tile. -; A TS sub-tile contains 576 pixels, adjust it for RA2. Note that the editor can crash +; A TS sub-tile contains 576 pixels, 900 for RA2. Note that the editor can crash ; if a tile has fewer pixels than this. -TileColorBufferSize=576 +TileColorBufferSize=900 ; The maximum number of waypoints that the target game supports. -; 100 in vanilla TS. -MaxWaypoint=100 +; 100 in vanilla TS and RA2, 701 in YR. +MaxWaypoint=701 ; Determines how many pixels should the editor looks outside of the screen for objects to be drawn. ; Some padding is necessary so large objects whose origin cell is just outside of the screen @@ -27,13 +27,13 @@ RenderPixelPadding=50 ; Determines whether the world is flat. ; If set, disables some height-specific functionality ; that is not necessary when height levels are not used. -IsFlatWorld=true +IsFlatWorld=false ; Does Tiberium use the Theater palette instead of the Unit palette? TheaterPaletteForTiberium=true ; Should Tiberium be affected by map lighting? -TiberiumAffectedByLighting=true +TiberiumAffectedByLighting=false ; Should Tiberium spawning terrain objects be affected by map lighting? TiberiumTreesAffectedByLighting=false @@ -46,26 +46,26 @@ VoxelsAffectedByLighting=false ; The file name of the executable that the map editor expects to find from the game directory. ; Used for the verification that the user has given us the correct game directory. -ExpectedClientExecutableName=DTA.exe +ExpectedClientExecutableName=ra2md.exe ; Specifies the path that we should check in the Windows registry to determine ; the game installation directory (if one hasn't been defined in the map editor settings file). ; We check a key "InstallPath" in the location to determine where the user has installed their game. ; The CnCNet Client has been programmed to write its installation path to the registry by default. -GameRegistryInstallPath=SOFTWARE\DawnOfTheTiberiumAge +GameRegistryInstallPath=SOFTWARE\WOW6432Node\Westwood\Yuri's Revenge ; If set to true, WAE will check for the installation path in the "Local Machine" ; part of the registry instead of the "Current User" part of the registry. -InstallPathAtHKLM=false +InstallPathAtHKLM=true ; If set to yes, WAE will always write a dummy preview to a map file that does not have a preview. ; This is required by vanilla games (both TS as well as RA2/YR) as they crash if a map has no preview. -DefaultPreview=false +DefaultPreview=true ; Specifies the file filter string used in OpenFileDialog (Windows) ; For multiple file formats, list them with : (instead of ;) ; Example config with multiple file extensions: "YR maps|*.map:*.mpr:*.yrm|All files|*.*" -OpenFileDialogFilter=TS maps|*.map|All files|*.* +OpenFileDialogFilter=All RA2/YR maps|*.map:*.mpr:*.yrm|RA2/YR singleplayer and CnCNet multiplayer maps|*.map|Non-CnCNet RA2 multiplayer maps|*.mpr|Non-CnCNet YR multiplayer maps|*.yrm|All files|*.* ; Should the editor consider Ares [#include] or Phobos [$Include] section? EnableIniInclude=false @@ -80,10 +80,10 @@ IntegerVariables=false AdvancedFacingsHack=true ; Is NewTheater generic fallback (letter G) available? -NewTheaterGenericBuilding=false +NewTheaterGenericBuilding=true ; Should the editor read and use RA2/YR Countries rather than TS HouseTypes? -UseCountries=false +UseCountries=true ; Maximum allowed dimensions of generated map previews. MapPreviewMaxWidth=400 @@ -91,12 +91,11 @@ MapPreviewMaxHeight=300 ; Paths to various files that the editor loads [FilePaths] -Rules=INI/Rules.ini -Firestorm=INI/Enhance.ini -Art=INI/Art.ini -ArtFS=INI/ArtE.ini -AI=INI/AI.ini -AIE=INI/AIE.ini -Tutorial=INI/Tutorial.ini -Theme=INI/Theme.ini - +Rules= +Firestorm=rulesmd.ini +Art= +ArtFS=artmd.ini +AI= +AIFS=aimd.ini +Tutorial=INI/tutorial.ini +Theme=thememd.ini diff --git a/src/TSMapEditor/Config/EditorRules.ini b/src/TSMapEditor/Config/EditorRules.ini index 4ae7c67b..abd7be41 100644 --- a/src/TSMapEditor/Config/EditorRules.ini +++ b/src/TSMapEditor/Config/EditorRules.ini @@ -1,208 +1,757 @@ -; C&C World-Altering Editor (WAE) +; C&C World-Altering Editor (WAE) ; https://github.com/Rampastring/WorldAlteringEditor -; Rules.ini overrides for the scenario editor. - -; We don't want to render these animations in the editor -[OILREFN_S] -RenderInEditor=no -[RAPOWR_S] -RenderInEditor=no - -[RAAPWR_S] -RenderInEditor=no +; Rules.ini overrides for the scenario editor. [ObjectOwnerOverrides] -GDI1=GDI -GDI2=GDI -Nod1=Nod -Nod2=Nod -Allies1=Allies -Allies2=Allies -Soviet1=Soviet -Soviet2=Soviet +Americans=Allies +Alliance=Allies +French=Allies +Germans=Allies +British=Allies +Africans=Soviets +Arabs=Soviets +Confederation=Soviets +Russians=Soviets +YuriCountry=Yuri + +[ObjectOwnerColors] +Allies=DarkBlue +Soviets=DarkRed +Yuri=Purple [ObjectCategoryOverrides] +; Vehicles +AMBU=Civilian +BCAB=Civilian +BCAB=Civilian +BUS=Civilian +CAR=Civilian +CBLC=Civilian +CDEST=Civilian +CIVP=Civilian +CONA=Civilian +COP=Civilian +CRUISE=Civilian +DDBX=Civilian +DOLY=Civilian +EUROC=Civilian +FTRK=Civilian +JEEP=Civilian +LIMO=Civilian +PICK=Civilian +PROPA=Civilian +PTRUCK=Civilian +STANG=Civilian +SUVB=Civilian +SUVW=Civilian +TAXI=Civilian +TRUCKA=Civilian +TRUCKB=Civilian +TUG=Civilian +WINI=Civilian +YCAB=Civilian + +; Aircraft +CARGOPLANE=Civilian +PDPLANE=Civilian + +BPLN=Soviets +CMIS=Soviets +SPYP=Soviets + +CMISL=Yuri + +; Naval +VLAD=Soviets + +; Infantry +ALL=Civilian +ARND=Civilian +CAML=Civilian +CIV1=Civilian +CIV2=Civilian +CIV3=Civilian +CIVA=Civilian +CIVB=Civilian +CIVBBP=Civilian +CIVBF=Civilian +CIVBFM=Civilian +CIVBTM=Civilian +CIVC=Civilian +CIVSF=Civilian +CIVSFM=Civilian +CIVSTM=Civilian +CLNT=Civilian +COW=Civilian +CTECH=Civilian +DNOA=Civilian +DNOB=Civilian +EINS=Civilian +JOSH=Civilian +MUMY=Civilian +PENTGEN=Civilian +POLARB=Civilian +PRES=Civilian +RMNV=Civilian +SSRV=Civilian +STLN=Civilian +VLADIMIR=Civilian + +ADOG=Allies +ENGINEER=Allies + +DOG=Soviets +FLAKT=Soviets +SENGINEER=Soviets + +YENGINEER=Yuri +YURI=Yuri + +; Buildings +AMRADR=Allies +ATESLA=Allies +GAAIRC=Allies +GACNST=Allies +GACSPH=Allies +GADEPT=Allies +GAGAP=Allies +GAGATE_A=Allies +GAOREP=Allies +GAPILE=Allies +GAPILL=Allies +GAPOWR=Allies +GAREFN=Allies +GAROBO=Allies +GASAND=Allies +GASPYSAT=Allies +GATECH=Allies +GAWALL=Allies +GAWEAP=Allies +GAWEAT=Allies +GAYARD=Allies +GTGCAN=Allies +NASAM=Allies + +NABNKR=Soviets +NADEPT=Soviets +NAFLAK=Soviets +NAHAND=Soviets +NAINDP=Soviets +NAIRON=Soviets +NALASR=Soviets +NAMISL=Soviets +NANRCT=Soviets +NAPOWR=Soviets +NARADR=Soviets +NAREFN=Soviets +NATECH=Soviets +NAWALL=Soviets +NAWEAP=Soviets +NAYARD=Soviets +TESLA=Soviets + +GAFWLL=Yuri +NACLON=Yuri +NAPSIS=Yuri +NAPSYB=Yuri +NATBNK=Yuri +YABRCK=Yuri +YACOMD=Yuri +YAGGUN=Yuri +YAGNTC=Yuri +YAGRND=Yuri +YAPOWR=Yuri +YAPPET=Yuri +YAPSYT=Yuri +YAREFN=Yuri +YAROCK=Yuri +YATECH=Yuri +YAWEAP=Yuri +YAYARD=Yuri + +; Tech Buildings +CAAIRP=Tech +CABHUT=Tech +CAMACH=Tech +CAOILD=Tech +CAOUTP=Tech +CAPOWR=Tech +CASLAB=Tech +CATHOSP=Tech [IgnoreTypes] +APACHE=true +BARB=true +BOXES01=true +BOXES02=true +BOXES03=true +BOXES04=true +BOXES05=true +BOXES06=true +BOXES07=true +BOXES08=true +BOXES09=true +BURN01=true +BURN02=true +BURN03=true +BURN04=true +BURN05=true +BURN06=true +BURN07=true +BURN08=true +BURN09=true +BURN10=true +BURN11=true +BURN12=true +BURN13=true +BURN14=true +BURN15=true +BURN16=true +CAARMR=true +CACITY01=true +CACITY02=true +CACITY03=true +CACITY04=true +CAEURO01=true +CAFNCB=true +CAFNCP=true +CAFNCW=true +CAHOSP=true +CAIRSFGL=true +CAKRMW=true +CALA02=true +CALIT01E=true +CALIT01N=true +CALIT01S=true +CALIT01W=true +CALIT02L=true +CALIT02R=true +CALIT03E=true +CALIT03N=true +CALIT03S=true +CALIT03W=true +CALOND02=true +CAMOON01=true +CANEWY05=true +CAPOL01E=true +CAPOL01N=true +CAPOL01S=true +CAPOL01W=true +CASIN01E=true +CASIN01N=true +CASIN01S=true +CASIN01W=true +CASYDN01=true +CATIME=true +CITY01=true +CITY02=true +CITY03=true +CITY04=true +CITY05=true +CITY06=true +CMON=true +CR1=true +CR2=true +CR3=true +CR4=true +CR5=true +CR6=true +CRAT01=true +CRAT02=true +CRAT03=true +CRAT04=true +CRAT0A=true +CRAT0B=true +CRAT0C=true +CYCL=true +DRUM01=true +DRUM02=true +DUMMY10=true +DUMMY11=true +DUMMY12=true +DUMMY13=true +DUMMY14=true +DUMMY15=true +DUMMY2=true +DUMMY3=true +DUMMY4=true +DUMMY5=true +DUMMY6=true +DUMMY7=true +DUMMY8=true +DUMMY9=true +DUMMY=true +DUMMYOLD=true +DeathDummy=true +FENC=true +FENCE01=true +FENCE02=true +FENCE03=true +FENCE04=true +FENCE05=true +FENCE06=true +FENCE07=true +FENCE08=true +FENCE09=true +FENCE10=true +FENCE11=true +FENCE12=true +FENCE13=true +FENCE14=true +FENCE15=true +FENCE16=true +FENCE17=true +FENCE18=true +FENCE19=true +FENCE20=true +FENCE21=true +FENCE22=true +GAARMORY=true +GADUMY=true +GAGREEN=true +GALITE=true +GARADR=true +GAWRONG=true +HIND=true +HORV=true +HOWI=true +ICE01=true +ICE02=true +ICE03=true +ICE04=true +ICE05=true +LOBRDGE1=true +LOBRDGE2=true +LOBRDGE3=true +LOBRDGE4=true +NAHPAD=true +NAWAST=true +PALET01=true +PALET02=true +PALET03=true +PALET04=true +RAILBRDG1=true +RAILBRDG2=true +RUBBLE_OVERLAY=true +SAND=true +SCHD=true +SMON=true +SPKR01=true +TRACKS01=true +TRACKS02=true +TRACKS03=true +TRACKS04=true +TRACKS05=true +TRACKS06=true +TRACKS07=true +TRACKS08=true +TRACKS09=true +TRACKS10=true +TRACKS11=true +TRACKS12=true +TRACKS13=true +TRACKS14=true +TRACKS15=true +TRACKS16=true +TRACKTUNNEL01=true +TRACKTUNNEL02=true +TRACKTUNNEL03=true +TRACKTUNNEL04=true +USELESS=true +UTNK=true +V16=true +V17=true +V18=true +VEINHOLE=true +VEINHOLEDUMMY=true +VEINS=true +VEINTREE=true +WEEDGUY=true +WOOD=true +WWLF=true +XCOMET=true +YADEPT=true +YADOG=true +YDOG=true +YDUM=true [ObjectCategoryPriorities] -GDI=0 -Nod=1 -Allies=2 -Soviet=3 -Special Units=4 -Civilian Vehicles=5 -Lifeforms=6 -Trains=7 -Misc=9001 +Allies=0 +Soviets=1 +Yuri=2 +Civilian=3 +Tech=4 +Uncategorized=9001 [Houses] -0=GDI -1=Nod -2=Allies -3=Soviet -4=Neutral -5=Special -6=GDI1 -7=Nod1 -8=GDI2 -9=Nod2 -10=Allies1 -11=Allies2 -12=Soviet1 -13=Soviet2 -50=Spawn1 -51=Spawn2 -52=Spawn3 -53=Spawn4 -54=Spawn5 -55=Spawn6 -56=Spawn7 -57=Spawn8 +0=Americans +1=Alliance +2=French +3=Germans +4=British +5=Africans +6=Arabs +7=Confederation +8=Russians +9=YuriCountry +10=GDI +11=Nod +12=Neutral +13=Special +4475= +4476= +4477= +4478= +4479= +4480= +4481= +4482= [SPHouses] -0=GDI -1=Nod -2=Allies -3=Soviet -4=Neutral -5=Special -6=GDI1 -7=Nod1 -8=GDI2 -9=Nod2 -10=Allies1 -11=Allies2 -12=Soviet1 -13=Soviet2 +0=Americans +1=Alliance +2=French +3=Germans +4=British +5=Africans +6=Arabs +7=Confederation +8=Russians +9=YuriCountry +10=GDI +11=Nod +12=Neutral +13=Special [CoopHouses] -0=GDI -1=Nod -2=Allies -3=Soviet -4=Neutral -5=Special -6=GDI1 -7=Nod1 -8=GDI2 -9=Nod2 -10=Allies1 -11=Allies2 -12=Soviet1 -13=Soviet2 -14=Fake14 -15=Fake15 -16=Fake16 -17=Fake17 -18=Fake18 -19=Fake19 -20=Fake20 -21=Fake21 -22=Fake22 -23=Fake23 -24=Fake24 -25=Fake25 -26=Fake26 -27=Fake27 -28=Fake28 -29=Fake29 -30=Fake30 -31=Fake31 -32=Fake32 -33=Fake33 -34=Fake34 -35=Fake35 -36=Fake36 -37=Fake37 -38=Fake38 -39=Fake39 -40=Fake40 -41=Fake41 -42=Fake42 -43=Fake43 -44=Fake44 -45=Fake45 -46=Fake46 -47=Fake47 -48=Fake48 -49=Fake49 -50=Spawn1 -51=Spawn2 -52=Spawn3 -53=Spawn4 -54=Spawn5 -55=Spawn6 -56=Spawn7 -57=Spawn8 +[Americans] +Color=DarkBlue -[GDI] -Color=Gold +[Alliance] +Color=DarkBlue -[Nod] +[French] +Color=DarkBlue + +[Germans] +Color=DarkBlue + +[British] +Color=DarkBlue + +[Africans] Color=DarkRed -[Allies] -Color=DarkSky +[Arabs] +Color=DarkRed + +[Confederation] +Color=DarkRed + +[Russians] +Color=DarkRed + +[YuriCountry] +Color=Purple -[Soviet] +[GDI] +Color=Gold + +[Nod] Color=DarkRed [Neutral] Color=LightGrey [Special] -Color=White +Color=LightGrey -[GDI1] -Color=Yellow +[] +Color=Gold -[Nod1] -Color=Red +[] +Color=DarkRed -[GDI2] +[] Color=Orange -[Nod2] -Color=Magenta ; "metalic" +[] +Color=Magenta -[Allies1] -Color=Blue +[] +Color=Purple -[Allies2] -Color=LightSky +[] +Color=DarkBlue -[Soviet1] -Color=DarkOrange +[] +Color=DarkSky -[Soviet2] -Color=LightOrange +[] +Color=DarkGreen +; Hiding theater-specific objects -[Spawn1] -Color=Orange +[CALOND05] +AllowedTheaters=NEWURBAN -[Spawn2] -Color=HyundaiPurple +[CALOND06] +AllowedTheaters=SNOW,URBAN,DESERT,NEWURBAN,LUNAR -[Spawn3] -Color=DarkTeal +[CALUNR02] +AllowedTheaters=SNOW,LUNAR -[Spawn4] -Color=DarkOrange +[CALUNR01] +AllowedTheaters=SNOW,LUNAR -[Spawn5] -Color=LightMagenta +[CASTRT02] +AllowedTheaters=SNOW -[Spawn6] -Color=DarkBlue +[CASTRT03] +AllowedTheaters=SNOW -[Spawn7] -Color=Cyan +[CASTRT04] +AllowedTheaters=SNOW -[Spawn8] -Color=DarkGreen +[CALA01] +AllowedTheaters=TEMPERATE,SNOW,DESERT,NEWURBAN + +[CALA14] +AllowedTheaters=TEMPERATE,SNOW,URBAN,NEWURBAN + +[CALA15] +AllowedTheaters=TEMPERATE,SNOW,URBAN,NEWURBAN + +[CASYDN02] +AllowedTheaters=TEMPERATE,URBAN,NEWURBAN + +[CASYDN03] +AllowedTheaters=TEMPERATE,SNOW,URBAN,NEWURBAN + +[CAURB03] +AllowedTheaters=TEMPERATE,SNOW,URBAN + +[CASANF05] +AllowedTheaters=TEMPERATE,SNOW,URBAN,NEWURBAN + +[CASANF15] +AllowedTheaters=TEMPERATE,SNOW,URBAN,NEWURBAN + +[CASANF16] +AllowedTheaters=TEMPERATE,SNOW,URBAN,NEWURBAN + +[CASANF17] +AllowedTheaters=TEMPERATE,SNOW,URBAN,NEWURBAN + +[CASANF18] +AllowedTheaters=TEMPERATE,SNOW,URBAN,NEWURBAN + +[CAEGYP01] +AllowedTheaters=TEMPERATE,URBAN,DESERT,NEWURBAN,LUNAR + +[CAMORR01] +AllowedTheaters=TEMPERATE,URBAN,DESERT,NEWURBAN,LUNAR + +[CAMORR02] +AllowedTheaters=TEMPERATE,URBAN,DESERT,NEWURBAN,LUNAR + +[CAMORR03] +AllowedTheaters=TEMPERATE,URBAN,DESERT,NEWURBAN,LUNAR + +[CASEAT01] +AllowedTheaters=TEMPERATE,URBAN,SNOW,NEWURBAN + +[CASEAT02] +AllowedTheaters=TEMPERATE,SNOW,NEWURBAN + +[CATRAN01] +AllowedTheaters=TEMPERATE,SNOW,NEWURBAN + +[CATRAN02] +AllowedTheaters=TEMPERATE,SNOW,NEWURBAN + +[CATRAN03] +AllowedTheaters=TEMPERATE,SNOW,NEWURBAN + +[CAPOFGL] +AllowedTheaters=SNOW + +[LUNRK1] +AllowedTheaters=LUNAR + +[LUNRK2] +AllowedTheaters=LUNAR + +[LUNRK3] +AllowedTheaters=LUNAR + +[LUNRK4] +AllowedTheaters=LUNAR + +[LUNRK5] +AllowedTheaters=LUNAR + +[LUNRK6] +AllowedTheaters=LUNAR + +[HDSTN01] +AllowedTheaters=TEMPERATE,SNOW,URBAN,DESERT,NEWURBAN + +[LT_EUR01] +AllowedTheaters=TEMPERATE,SNOW,URBAN,DESERT,NEWURBAN + +[LT_EUR02] +AllowedTheaters=TEMPERATE,SNOW,URBAN,DESERT,NEWURBAN + +[LT_GEN01] +AllowedTheaters=TEMPERATE,SNOW,URBAN,DESERT,NEWURBAN + +[LT_GEN02] +AllowedTheaters=TEMPERATE,SNOW,URBAN,DESERT,NEWURBAN + +[LT_GEN03] +AllowedTheaters=TEMPERATE,SNOW,URBAN,DESERT,NEWURBAN + +[LT_GEN04] +AllowedTheaters=TEMPERATE,SNOW,URBAN,DESERT,NEWURBAN + +[LT_SGN01] +AllowedTheaters=TEMPERATE,SNOW,URBAN,DESERT,NEWURBAN + +[LT_SGN02] +AllowedTheaters=TEMPERATE,SNOW,URBAN,DESERT,NEWURBAN + +[LT_SGN03] +AllowedTheaters=TEMPERATE,SNOW,URBAN,DESERT,NEWURBAN + +[LT_SGN04] +AllowedTheaters=TEMPERATE,SNOW,URBAN,DESERT,NEWURBAN + +[TRFF01] +AllowedTheaters=TEMPERATE,SNOW,URBAN,DESERT,NEWURBAN + +[TRFF02] +AllowedTheaters=TEMPERATE,SNOW,URBAN,DESERT,NEWURBAN + +[TRFF03] +AllowedTheaters=TEMPERATE,SNOW,URBAN,DESERT,NEWURBAN + +[TRFF04] +AllowedTheaters=TEMPERATE,SNOW,URBAN,DESERT,NEWURBAN + +[TREE01] +AllowedTheaters=TEMPERATE,SNOW,URBAN,DESERT,NEWURBAN + +[TREE02] +AllowedTheaters=TEMPERATE,SNOW,URBAN,DESERT,NEWURBAN + +[TREE03] +AllowedTheaters=TEMPERATE,SNOW,URBAN,DESERT,NEWURBAN + +[TREE04] +AllowedTheaters=TEMPERATE,SNOW,URBAN,DESERT,NEWURBAN + +[TREE05] +AllowedTheaters=TEMPERATE,SNOW,URBAN,DESERT,NEWURBAN + +[TREE06] +AllowedTheaters=TEMPERATE,SNOW,URBAN,DESERT,NEWURBAN + +[TREE07] +AllowedTheaters=TEMPERATE,SNOW,URBAN,DESERT,NEWURBAN + +[TREE08] +AllowedTheaters=TEMPERATE,SNOW,URBAN,DESERT,NEWURBAN + +[TREE09] +AllowedTheaters=TEMPERATE,SNOW,URBAN,DESERT,NEWURBAN + +[TREE10] +AllowedTheaters=TEMPERATE,SNOW,URBAN,DESERT,NEWURBAN + +[TREE11] +AllowedTheaters=TEMPERATE,SNOW,URBAN,DESERT,NEWURBAN + +[TREE12] +AllowedTheaters=TEMPERATE,SNOW,URBAN,DESERT,NEWURBAN + +[TREE13] +AllowedTheaters=TEMPERATE,SNOW,URBAN,DESERT,NEWURBAN + +[TREE14] +AllowedTheaters=TEMPERATE,SNOW,URBAN,DESERT,NEWURBAN + +[TREE15] +AllowedTheaters=TEMPERATE,SNOW,URBAN,DESERT,NEWURBAN + +[TREE16] +AllowedTheaters=TEMPERATE,SNOW,URBAN,DESERT,NEWURBAN + +[TREE17] +AllowedTheaters=TEMPERATE,SNOW,URBAN,DESERT,NEWURBAN + +[TREE18] +AllowedTheaters=TEMPERATE,SNOW,URBAN,DESERT,NEWURBAN + +[TREE19] +AllowedTheaters=TEMPERATE,SNOW,URBAN,DESERT,NEWURBAN + +[TREE20] +AllowedTheaters=TEMPERATE,SNOW,URBAN,DESERT,NEWURBAN + +[TREE21] +AllowedTheaters=TEMPERATE,SNOW,URBAN,DESERT,NEWURBAN + +[TREE22] +AllowedTheaters=TEMPERATE,SNOW,URBAN,DESERT,NEWURBAN + +[TREE23] +AllowedTheaters=TEMPERATE,SNOW,URBAN,DESERT,NEWURBAN + +[TREE24] +AllowedTheaters=TEMPERATE,SNOW,URBAN,DESERT,NEWURBAN + +[TREE25] +AllowedTheaters=TEMPERATE,SNOW,URBAN,DESERT,NEWURBAN + +[TREE26] +AllowedTheaters=TEMPERATE,SNOW,URBAN,DESERT,NEWURBAN + +[TREE27] +AllowedTheaters=TEMPERATE,SNOW,URBAN,DESERT,NEWURBAN + +[TREE28] +AllowedTheaters=TEMPERATE,SNOW,URBAN,DESERT,NEWURBAN + +[TREE29] +AllowedTheaters=DESERT,NEWURBAN + +[TREE30] +AllowedTheaters=DESERT,NEWURBAN + +[TREE31] +AllowedTheaters=DESERT,NEWURBAN + +[TREE32] +AllowedTheaters=DESERT,NEWURBAN + +[TREE33] +AllowedTheaters=DESERT,NEWURBAN + +[TREE34] +AllowedTheaters=DESERT,NEWURBAN + +[TREE35] +AllowedTheaters=DESERT,NEWURBAN + +[TREE36] +AllowedTheaters=DESERT,NEWURBAN + +[POLE01] +AllowedTheaters=TEMPERATE,SNOW,URBAN,DESERT,NEWURBAN +[POLE02] +AllowedTheaters=TEMPERATE,SNOW,URBAN,DESERT,NEWURBAN diff --git a/src/TSMapEditor/Config/Events.ini b/src/TSMapEditor/Config/Events.ini index a9f58c65..18714de3 100644 --- a/src/TSMapEditor/Config/Events.ini +++ b/src/TSMapEditor/Config/Events.ini @@ -279,17 +279,50 @@ Name=Credits Below Description=Triggers when the house (of this trigger) credit total is below this specified amount. P2Type=Number -[PlayerUnderEMPEffect] -Name=Player under EMP Effect -Description=Attached objects are under EMP effect. +[SpyEntersAsHouse] +Name=Spy Enters As House +Description=Triggers if a spy disguised as the house (of this trigger) specified enters this. P2Type=HouseType -[EnemyInSpotlightSpecial] -Name=Enemy In Spotlight (Special) -Description=Triggers when an enemy unit enters the spotlight cast by the attached building. Unlike event 35, attached tag need not be repeating. +[SpyEntersAsInfantry] +Name=Spy Enters As Infantry +Description=A spy disguised as the specified infantry enters the attached object. +P2Type=Infantry + +[DestroyedUnitsNaval] +Name=Destroyed Units, Naval +Description=Triggers when all naval units of the specified house have been destroyed. +P2Type=HouseType -[LimpetAttached] -Name=Limpet Attached -Description=Triggers when the attached object is infected by a limpet mine. +[DestroyedUnitsLand] +Name=Destroyed Units, Land +Description=Triggers when all land units of the specified house have been destroyed. +P2Type=HouseType + +[BuildingDoesNotExist] +Name=Building Does Not Exist +Description=No buildings of the specified type (owned by the house of this trigger) exist on the map +P2Type=Building +[PowerFull] +Name=Power Full +Description=Triggers when the house (of this trigger) has 100% power. +P2Type=HouseType + +[EnteredOrOverflownBy] +Name=Entered Or Overflown By +Description=Triggers when objects owned by the house (of this trigger) move over the attached cell. +P2Type=HouseType + +[TechnoTypeExists] +Name=TechnoType Exists +Description=Triggers when at least this many technos of the specified type exist on the map +P1Type=-2 +P2Type=Number +P3Type=Techno +[TechnoTypeDoesNotExist] +Name=TechnoType Does Not Exist +Description=Triggers when there are no technos of the spercified type on the map +P1Type=-2 +P3Type=Techno diff --git a/src/TSMapEditor/Config/FileManagerConfig.ini b/src/TSMapEditor/Config/FileManagerConfig.ini index 794f6eb4..1135738a 100644 --- a/src/TSMapEditor/Config/FileManagerConfig.ini +++ b/src/TSMapEditor/Config/FileManagerConfig.ini @@ -1,9 +1,9 @@ -; C&C World-Altering Editor (WAE) +; C&C World-Altering Editor (WAE) ; https://github.com/Rampastring/WorldAlteringEditor ; Specifies directories that the file manager will load MIX files from. [SearchDirectories] -0=MIX +0=. 1=Map Editor ; Specifies primary MIX files. The editor will refuse to start if one of these is not found. @@ -11,19 +11,29 @@ ; The valid options are $TSECACHE, $RA2ECACHE, $TSELOCAL, $RA2ELOCAL, $EXPAND, $EXPANDMD. ; The editor WILL start even if none of them are found. [PrimaryMIXFiles] -0=Cache.mix -1=Local.mix -2=Conquer.mix +0=langmd.mix +1=language.mix +2=$EXPANDMD +3=ra2md.mix +4=ra2.mix +5=cachemd.mix +6=cache.mix +7=localmd.mix +8=local.mix +9=$RA2ECACHE +10=$RA2ELOCAL +11=conqmd.mix +12=genermd.mix +13=generic.mix +14=isogenmd.mix +15=isogen.mix +16=conquer.mix ; Specifies secondary MIX files. ; The editor will attempt to load these, but will start even if these are missing. [SecondaryMIXFiles] -0=ECache00.mix -1=ECache01.mix -2=ECache02.mix -3=ECache03.mix -4=ECache04.mix -5=ECache05.mix -6=RampaCache.mix - +0=marble.mix ; borrowed from Final Alert 2 +[StringTables] +0=ra2.csf +1=ra2md.csf diff --git a/src/TSMapEditor/Config/MapCode/Enable Blue Tiberium Spreader Lighting.ini b/src/TSMapEditor/Config/MapCode/Enable Blue Tiberium Spreader Lighting.ini deleted file mode 100644 index 399274d6..00000000 --- a/src/TSMapEditor/Config/MapCode/Enable Blue Tiberium Spreader Lighting.ini +++ /dev/null @@ -1,12 +0,0 @@ -[$Editor] -Confirmation=This script will enable blue lighting for blue tiberium spreaders. Continue? -Success=Code for enabling blue tiberium spreader lighting has been added to the map. - -[TIBSPRDV] -LightRedTint=0.0 -LightBlueTint=0.3 -LightGreenTint=0.0 -LightIntensity=0.003 -LightVisibility=1500 - - diff --git a/src/TSMapEditor/Config/MapCode/Enable Green Tiberium Spreader Lighting.ini b/src/TSMapEditor/Config/MapCode/Enable Green Tiberium Spreader Lighting.ini deleted file mode 100644 index a4e6a29a..00000000 --- a/src/TSMapEditor/Config/MapCode/Enable Green Tiberium Spreader Lighting.ini +++ /dev/null @@ -1,26 +0,0 @@ -[$Editor] -Confirmation=This script will enable green lighting for green tiberium spreaders. Continue? -Success=Code for enabling green tiberium spreader lighting has been added to the map. - -[TIBSPRDR] -LightRedTint=0.0 -LightBlueTint=0.0 -LightGreenTint=0.35 -LightIntensity=0.003 -LightVisibility=1500 - -[TIBSPRDRL] -LightRedTint=0.0 -LightBlueTint=0.0 -LightGreenTint=0.35 -LightIntensity=0.003 -LightVisibility=1500 - -[TIBSPRDRH] -LightRedTint=0.0 -LightBlueTint=0.0 -LightGreenTint=0.35 -LightIntensity=0.003 -LightVisibility=1500 - - diff --git a/src/TSMapEditor/Config/MapCode/Enable Ore Spreader Lighting.ini b/src/TSMapEditor/Config/MapCode/Enable Ore Spreader Lighting.ini deleted file mode 100644 index 08f3e621..00000000 --- a/src/TSMapEditor/Config/MapCode/Enable Ore Spreader Lighting.ini +++ /dev/null @@ -1,12 +0,0 @@ -[$Editor] -Confirmation=This script will enable yellow lighting for ore spreaders. Continue? -Success=Code for enabling ore spreader lighting has been added to the map. - -[TIBSPRDA] -LightRedTint=0.3 -LightBlueTint=0.0 -LightGreenTint=0.3 -LightIntensity=0.003 -LightVisibility=1500 - - diff --git a/src/TSMapEditor/Config/MapCode/Enable Spreading Ore.ini b/src/TSMapEditor/Config/MapCode/Enable Spreading Ore.ini deleted file mode 100644 index b5ed6c57..00000000 --- a/src/TSMapEditor/Config/MapCode/Enable Spreading Ore.ini +++ /dev/null @@ -1,23 +0,0 @@ -[$Editor] -Confirmation=This script will enable spreading ore for the map. Do not use this maps that have scrap debris placed on them. Continue? -Success=Code for enabling spreading ore has been added to the map. - -[Tiberiums] -0=Riparius -1=Cruentus -2=Vinifera -3=Aboreus - -[Aboreus] -Name=Ore -Image=4 -Value=25 -Growth=1000 -GrowthPercentage=10 -Spread=1000 -SpreadPercentage=2 -Power=1 -Color=DarkGold -Debris=VINCRYS1,VINCRYS2,VINCRYS3,VINCRYS4 - - diff --git a/src/TSMapEditor/Config/MapCode/Mixed Gems Only Use Blue-Green Colors.ini b/src/TSMapEditor/Config/MapCode/Mixed Gems Only Use Blue-Green Colors.ini deleted file mode 100644 index 3e2c94f7..00000000 --- a/src/TSMapEditor/Config/MapCode/Mixed Gems Only Use Blue-Green Colors.ini +++ /dev/null @@ -1,16 +0,0 @@ -[$Editor] -Confirmation=This script will change the colors of the mixed gems to green/blue (note: the effects won't be visible in the map editor before you restart it or re-load the map). Continue? -Success=Code for changing the image of the mixed gems has been added to the map. - -[GEMMIX01] -Image=GEMGB01 - -[GEMMIX02] -Image=GEMGB02 - -[GEMMIX03] -Image=GEMGB03 - -[GEMMIX04] -Image=GEMGB04 - diff --git a/src/TSMapEditor/Config/MapCode/Replace Tiberium With Ore.ini b/src/TSMapEditor/Config/MapCode/Replace Tiberium With Ore.ini deleted file mode 100644 index c6c951e4..00000000 --- a/src/TSMapEditor/Config/MapCode/Replace Tiberium With Ore.ini +++ /dev/null @@ -1,66 +0,0 @@ -[$Editor] -Confirmation=This script will change the appearance of green tiberium to ore (note: the effects won't be visible in the map editor until you reload the map). Continue? -Success=Code for changing the image of green tiberium has been added to the map. - -[Tiberiums] -0=Riparius -1=Cruentus -2=Vinifera -3=Aboreus - -[Riparius] -Name=Ore -Power=0 - -[OREMINE] -TiberiumToSpawn=0 - -;[OREMINEA] -;TiberiumToSpawn=0 - -[OREMINE2] -TiberiumToSpawn=0 - -[OREMINE3] -TiberiumToSpawn=0 - -[TIBSPRDA] -Image=TIBSPRDR3 - -[RTIB01] -Image=ZORE01 - -[RTIB02] -Image=ZORE02 - -[RTIB03] -Image=ZORE03 - -[RTIB04] -Image=ZORE04 - -[RTIB05] -Image=ZORE01 - -[RTIB06] -Image=ZORE02 - -[RTIB07] -Image=ZORE03 - -[RTIB08] -Image=ZORE04 - -[RTIB09] -Image=ZORE01 - -[RTIB10] -Image=ZORE02 - -[RTIB11] -Image=ZORE03 - -[RTIB12] -Image=ZORE04 - - diff --git a/src/TSMapEditor/Config/MapCode/Replace Tiberium With Snowy Ore.ini b/src/TSMapEditor/Config/MapCode/Replace Tiberium With Snowy Ore.ini deleted file mode 100644 index 59132554..00000000 --- a/src/TSMapEditor/Config/MapCode/Replace Tiberium With Snowy Ore.ini +++ /dev/null @@ -1,56 +0,0 @@ -[$Editor] -Confirmation=This script will change the appearance of green tiberium to snowy ore (note: the effects won't be visible in the map editor until you reload the map). Continue? -Success=Code for changing the image of green tiberium has been added to the map. - -[Tiberiums] -0=Riparius -1=Cruentus -2=Vinifera -3=Aboreus - -[Riparius] -Name=Ore -Power=0 - -[OREMINEA] -TiberiumToSpawn=0 - -[TIBSPRDA] -Image=TIBSPRDR3 - -[RTIB01] -Image=ZORESNO01 - -[RTIB02] -Image=ZORESNO02 - -[RTIB03] -Image=ZORESNO03 - -[RTIB04] -Image=ZORESNO04 - -[RTIB05] -Image=ZORESNO01 - -[RTIB06] -Image=ZORESNO02 - -[RTIB07] -Image=ZORESNO03 - -[RTIB08] -Image=ZORESNO04 - -[RTIB09] -Image=ZORESNO01 - -[RTIB10] -Image=ZORESNO02 - -[RTIB11] -Image=ZORESNO03 - -[RTIB12] -Image=ZORESNO04 - diff --git a/src/TSMapEditor/Config/MapCode/Snowy Mixed Gems.ini b/src/TSMapEditor/Config/MapCode/Snowy Mixed Gems.ini deleted file mode 100644 index 24401796..00000000 --- a/src/TSMapEditor/Config/MapCode/Snowy Mixed Gems.ini +++ /dev/null @@ -1,41 +0,0 @@ -[$Editor] -Confirmation=This script will change the appearance of the mixed gems to a snowy version (note: the effects won't be visible in the map editor until you reload the map). Continue? -Success=Code for changing the image of the gems has been added to the map. - -[MIXGEM01] -Image=GEMSRA01 - -[MIXGEM02] -Image=GEMSRA02 - -[MIXGEM03] -Image=GEMSRA03 - -[MIXGEM04] -Image=GEMSRA04 - -[GRNGEM01] -Image=GEMSRA01 - -[GRNGEM02] -Image=GEMSRA02 - -[GRNGEM03] -Image=GEMSRA03 - -[GRNGEM04] -Image=GEMSRA04 - -[BLUGEM01] -Image=GEMSRA01 - -[BLUGEM02] -Image=GEMSRA02 - -[BLUGEM03] -Image=GEMSRA03 - -[BLUGEM04] -Image=GEMSRA04 - - diff --git a/src/TSMapEditor/Config/MapCode/Snowy Ore.ini b/src/TSMapEditor/Config/MapCode/Snowy Ore.ini deleted file mode 100644 index 0aea0fd8..00000000 --- a/src/TSMapEditor/Config/MapCode/Snowy Ore.ini +++ /dev/null @@ -1,41 +0,0 @@ -[$Editor] -Confirmation=This INI file will change the appearance of ore to a snowy version (note: the effects won't be visible in the map editor before you restart it or re-load the map). Continue? -Success=Code for changing the image of ore has been added to the map. - -[ZORE01] -Image=ZORESNO01 - -[ZORE02] -Image=ZORESNO02 - -[ZORE03] -Image=ZORESNO03 - -[ZORE04] -Image=ZORESNO04 - -[ZORE05] -Image=ZORESNO01 - -[ZORE06] -Image=ZORESNO02 - -[ZORE07] -Image=ZORESNO03 - -[ZORE08] -Image=ZORESNO04 - -[ZORE09] -Image=ZORESNO01 - -[ZORE10] -Image=ZORESNO02 - -[ZORE11] -Image=ZORESNO03 - -[ZORE12] -Image=ZORESNO04 - - diff --git a/src/TSMapEditor/Config/MapCode/Snowy Smudges.ini b/src/TSMapEditor/Config/MapCode/Snowy Smudges.ini deleted file mode 100644 index 7f8273f8..00000000 --- a/src/TSMapEditor/Config/MapCode/Snowy Smudges.ini +++ /dev/null @@ -1,215 +0,0 @@ -[$Editor] -Confirmation=This script will change the appearance of smudges created by weapon impacts to a snowy version on this map. Continue? -Success=Code for disabling normal smudges and enabling the snowy ones has been added to the map. - -[CR1A] -Crater=no - -[CR1B] -Crater=no - -[CR1C] -Crater=no - -[CR1D] -Crater=no - -[CR1E] -Crater=no - -[CR2A] -Crater=no - -[CR2B] -Crater=no - -[CR2C] -Crater=no - -[CR2D] -Crater=no - -[CR2E] -Crater=no - -[CR3A] -Crater=no - -[CR3B] -Crater=no - -[CR3C] -Crater=no - -[CR3D] -Crater=no - -[CR3E] -Crater=no - -[CR4A] -Crater=no - -[CR4B] -Crater=no - -[CR4C] -Crater=no - -[CR4D] -Crater=no - -[CR4E] -Crater=no - -[CR5A] -Crater=no - -[CR5B] -Crater=no - -[CR5C] -Crater=no - -[CR5D] -Crater=no - -[CR5E] -Crater=no - -[CR6A] -Crater=no - -[CR6B] -Crater=no - -[CR6C] -Crater=no - -[CR6D] -Crater=no - -[CR6E] -Crater=no - -[CRS1A] -Crater=yes - -[CRS1B] -Crater=yes - -[CRS1C] -Crater=yes - -[CRS1D] -Crater=yes - -[CRS1E] -Crater=yes - -[CRS2A] -Crater=yes - -[CRS2B] -Crater=yes - -[CRS2C] -Crater=yes - -[CRS2D] -Crater=yes - -[CRS2E] -Crater=yes - -[CRS3A] -Crater=yes - -[CRS3B] -Crater=yes - -[CRS3C] -Crater=yes - -[CRS3D] -Crater=yes - -[CRS3E] -Crater=yes - -[CRS4A] -Crater=yes - -[CRS4B] -Crater=yes - -[CRS4C] -Crater=yes - -[CRS4D] -Crater=yes - -[CRS4E] -Crater=yes - -[CRS5A] -Crater=yes - -[CRS5B] -Crater=yes - -[CRS5C] -Crater=yes - -[CRS5D] -Crater=yes - -[CRS5E] -Crater=yes - -[CRS6A] -Crater=yes - -[CRS6B] -Crater=yes - -[CRS6C] -Crater=yes - -[CRS6D] -Crater=yes - -[CRS6E] -Crater=yes - -[SC1] -Burn=no - -[SC2] -Burn=no - -[SC4] -Burn=no - -[SC5] -Burn=no - -[SC6] -Burn=no - -[SCS1] -Burn=yes - -[SCS2] -Burn=yes - -[SCS4] -Burn=yes - -[SCS5] -Burn=yes - -[SCS6] -Burn=yes - - diff --git a/src/TSMapEditor/Config/MapCode/Snowy Tiberium.ini b/src/TSMapEditor/Config/MapCode/Snowy Tiberium.ini deleted file mode 100644 index 36deec78..00000000 --- a/src/TSMapEditor/Config/MapCode/Snowy Tiberium.ini +++ /dev/null @@ -1,77 +0,0 @@ -[$Editor] -Confirmation=This INI file will change the appearance of tiberium to a snowy version (note: the effects won't be visible in the map editor before you restart it or re-load the map). Continue? -Success=Code for changing the image of tiberium has been added to the map. - -[RTIB01] -Image=TIB1S_01 - -[RTIB02] -Image=TIB1S_02 - -[RTIB03] -Image=TIB1S_03 - -[RTIB04] -Image=TIB1S_04 - -[RTIB05] -Image=TIB1S_05 - -[RTIB06] -Image=TIB1S_06 - -[RTIB07] -Image=TIB1S_07 - -[RTIB08] -Image=TIB1S_08 - -[RTIB09] -Image=TIB1S_09 - -[RTIB10] -Image=TIB1S_10 - -[RTIB11] -Image=TIB1S_11 - -[RTIB12] -Image=TIB1S_12 - -[QTIB01] -Image=TIB2S_01 - -[QTIB02] -Image=TIB2S_02 - -[QTIB03] -Image=TIB2S_03 - -[QTIB04] -Image=TIB2S_04 - -[QTIB05] -Image=TIB2S_05 - -[QTIB06] -Image=TIB2S_06 - -[QTIB07] -Image=TIB2S_07 - -[QTIB08] -Image=TIB2S_08 - -[QTIB09] -Image=TIB2S_09 - -[QTIB10] -Image=TIB2S_10 - -[QTIB11] -Image=TIB2S_11 - -[QTIB12] -Image=TIB2S_12 - - diff --git a/src/TSMapEditor/Config/OverlayCollections.ini b/src/TSMapEditor/Config/OverlayCollections.ini index 5240863d..55ffe313 100644 --- a/src/TSMapEditor/Config/OverlayCollections.ini +++ b/src/TSMapEditor/Config/OverlayCollections.ini @@ -4,95 +4,63 @@ ; Specifies overlay collections available in the sidebar. [OverlayCollections] -0=GreenTiberium -1=BlueTiberium -2=Ore -3=ScrapMetal -4=GreenGems -5=BlueGems -6=MixedGems -7=AutumnGrass - -[GreenTiberium] -Name=Green Tiberium -OverlayType0=RTIB01 -OverlayType1=RTIB02 -OverlayType2=RTIB03 -OverlayType3=RTIB04 -OverlayType4=RTIB05 -OverlayType5=RTIB06 -OverlayType6=RTIB07 -OverlayType7=RTIB08 -OverlayType8=RTIB09 -OverlayType9=RTIB10 -OverlayType10=RTIB11 -OverlayType11=RTIB12 - -[BlueTiberium] -Name=Blue Tiberium -OverlayType0=QTIB01 -OverlayType1=QTIB02 -OverlayType2=QTIB03 -OverlayType3=QTIB04 -OverlayType4=QTIB05 -OverlayType5=QTIB06 -OverlayType6=QTIB07 -OverlayType7=QTIB08 -OverlayType8=QTIB09 -OverlayType9=QTIB10 -OverlayType10=QTIB11 -OverlayType11=QTIB12 +0=Ore +1=Gems +2=ClearRocks +3=SandRocks +4=LunarRocks [Ore] Name=Ore -OverlayType0=ZORE01 -OverlayType1=ZORE02 -OverlayType2=ZORE03 -OverlayType3=ZORE04 -OverlayType4=ZORE05 -OverlayType5=ZORE06 -OverlayType6=ZORE07 -OverlayType7=ZORE08 -OverlayType8=ZORE09 -OverlayType9=ZORE10 -OverlayType10=ZORE11 -OverlayType11=ZORE12 - -[ScrapMetal] -Name=Scrap Metal -OverlayType0=SCRAP01 -OverlayType1=SCRAP02 -OverlayType2=SCRAP03 -OverlayType3=SCRAP04 - -[GreenGems] -Name=Green Gems -OverlayType0=GRNGEM01 -OverlayType1=GRNGEM02 -OverlayType2=GRNGEM03 -OverlayType3=GRNGEM04 +OverlayType0=TIB01 +OverlayType1=TIB02 +OverlayType2=TIB03 +OverlayType3=TIB04 +OverlayType4=TIB05 +OverlayType5=TIB06 +OverlayType6=TIB07 +OverlayType7=TIB08 +OverlayType8=TIB09 +OverlayType9=TIB10 +OverlayType10=TIB11 +OverlayType11=TIB12 -[BlueGems] -Name=Blue Gems -OverlayType0=BLUGEM01 -OverlayType1=BLUGEM02 -OverlayType2=BLUGEM03 -OverlayType3=BLUGEM04 +[Gems] +Name=Gems +OverlayType0=GEM01 +OverlayType1=GEM02 +OverlayType2=GEM03 +OverlayType3=GEM04 +OverlayType4=GEM05 +OverlayType5=GEM06 +OverlayType6=GEM07 +OverlayType7=GEM08 +OverlayType8=GEM09 +OverlayType9=GEM10 +OverlayType10=GEM11 +OverlayType11=GEM12 -[MixedGems] -Name=Mixed Gems -OverlayType0=MIXGEM01 -OverlayType1=MIXGEM02 -OverlayType2=MIXGEM03 -OverlayType3=MIXGEM04 +[ClearRocks] +Name=Clear Rocks +OverlayType0=TROCK01 +OverlayType1=TROCK02 +OverlayType2=TROCK03 +OverlayType3=TROCK04 +OverlayType4=TROCK05 -; Demonstrates including optional overlay frames in the types of overlay to place. -[AutumnGrass] -Name=Small Autumn Grass -OverlayType0=AJGRASS,0 -OverlayType1=AJGRASS,1 -OverlayType2=AJGRASS,2 -OverlayType3=AJGRASS,3 -OverlayType4=AJGRASS,4 -OverlayType5=AJGRASS,5 +[SandRocks] +Name=Sand Rocks +OverlayType0=SROCK01 +OverlayType1=SROCK02 +OverlayType2=SROCK03 +OverlayType3=SROCK04 +OverlayType4=SROCK05 +[LunarRocks] +Name=Lunar Rocks +OverlayType0=LUNRK1 +OverlayType1=LUNRK2 +OverlayType2=LUNRK3 +OverlayType3=LUNRK4 +OverlayType4=LUNRK5 +AllowedTheaters=LUNAR diff --git a/src/TSMapEditor/Config/ScriptActions.ini b/src/TSMapEditor/Config/ScriptActions.ini index c16ce3e5..f724267a 100644 --- a/src/TSMapEditor/Config/ScriptActions.ini +++ b/src/TSMapEditor/Config/ScriptActions.ini @@ -94,22 +94,29 @@ Option5=5,Guard Option6=6,Sticky Option7=7,Enter Option8=8,Capture -Option9=9,Harvest -Option10=10,Area Guard -Option11=11,Return -Option12=12,Stop -Option13=13,Ambush -Option14=14,Hunt -Option15=15,Unload -Option16=16,Sabotage -Option17=17,Construction -Option18=18,Selling -Option19=19,Repair -Option20=20,Rescue -Option21=21,Missile -Option22=22,Harmless -Option23=23,Open -Option24=24,Patrol +Option9=9,Eaten +Option10=10,Harvest +Option11=11,Area Guard +Option12=12,Return +Option13=13,Stop +Option14=14,Ambush +Option15=15,Hunt +Option16=16,Unload +Option17=17,Sabotage +Option18=18,Construction +Option19=19,Selling +Option20=20,Repair +Option21=21,Rescue +Option22=22,Missile +Option23=23,Harmless +Option24=24,Open +Option25=25,Patrol +Option26=26,Paradrop Approach +Option27=27,Paradrop Overfly +Option28=28,Wait +Option29=29,Attack (Again) +Option30=30,Spyplane Approach +Option31=31,Spyplane Overfly [SetGlobalVariable] Name=Set Global Variable diff --git a/src/TSMapEditor/Config/Scripts/Apply Animated Water.cs b/src/TSMapEditor/Config/Scripts/Apply Animated Water.cs deleted file mode 100644 index 4cdbcde0..00000000 --- a/src/TSMapEditor/Config/Scripts/Apply Animated Water.cs +++ /dev/null @@ -1,147 +0,0 @@ -// Script for replacing regular water with animated water -// in Dawn of the Tiberium Age maps. - -// Using clauses. -// Unless you know what's in the WAE code-base, you want to always include -// these "standard usings". -using System; -using TSMapEditor; -using TSMapEditor.Models; -using TSMapEditor.CCEngine; -using TSMapEditor.Rendering; -using TSMapEditor.GameMath; - -namespace WAEScript -{ - public class ApplyAnimatedWaterScript - { - /// - /// Returns the description of this script. - /// All scripts must contain this function. - /// - public string GetDescription() => "This script will replace all water on the map with animated water. Continue?"; - - /// - /// Returns the message that is presented to the user if running this script succeeded. - /// All scripts must contain this function. - /// - public string GetSuccessMessage() - { - if (error == null) - return "Successfully replaced water with animated water."; - - return error; - } - - private string error; - - private TileSet waterTileSet; - - private const string AnimatedWaterTileSetName = "Animated Water"; - private const string WaterTileSetName = "Water"; - - /// - /// The function that actually does the magic. - /// - /// Map argument that allows us to access map data. - public void Perform(Map map) - { - var animatedWaterTileSet = map.TheaterInstance.Theater.FindTileSet(AnimatedWaterTileSetName); - if (animatedWaterTileSet == null) - { - error = "TileSet for animated water not found!"; - return; - } - - waterTileSet = map.TheaterInstance.Theater.FindTileSet(WaterTileSetName); - if (waterTileSet == null) - { - error = "TileSet for regular (non-animated) water not found!"; - return; - } - - // Specifies the tiles to pick for each round. - // If multiple tiles are specified for a round, one of them is selected - // with RNG (there are multiple kinds of 2x2 and 1x1 animated water tiles). - int[][] tileIndexesToPickFrom = new int[][] - { - new int[] { 9 }, // Big 10x10 animated water tile - new int[] { 7, 8 }, // 5x5 animated water tiles - new int[] { 6 }, // 4x4 - new int[] { 5 }, // 3x3 - new int[] { 0, 1, 2, 3, 4 }, // 2x2 tiles - new int[] { 10, 11, 12, 13 } // 1x1 tiles - }; - - Random random = new Random(); - - // 1st loop - loops through animated water tiles of different sizes - for (int sizeTypeIndex = 0; sizeTypeIndex < tileIndexesToPickFrom.Length; sizeTypeIndex++) - { - // Fetch the animated water tile so we can fetch its size - - ITileImage tileImage = map.TheaterInstance.GetTile(animatedWaterTileSet.StartTileIndex + tileIndexesToPickFrom[sizeTypeIndex][0]); - int tileWidth = tileImage.Width; - int tileHeight = tileImage.Height; - - map.DoForAllValidTiles(mapCell => - { - const int margin = 4; - - // As an animation, animated water slows down the game, so don't place it outside of the visible map area - var pixelCoords = CellMath.CellTopLeftPointFromCellCoords(mapCell.CoordsToPoint(), map); - if (pixelCoords.Y < Constants.CellSizeY * margin || pixelCoords.Y > map.Size.Y * Constants.CellSizeY - (Constants.CellSizeY * margin)) - return; - - if (pixelCoords.X < Constants.CellSizeX * margin || pixelCoords.X > map.Size.X * Constants.CellSizeX - (Constants.CellSizeX * margin)) - return; - - // Check whether this cell contains water - if (!IsWaterTile(mapCell.TileIndex)) - return; - - // We know that we're on a water cell, check if we can fit the animated water tile here - if (!CanFitAnimatedWaterTileHere(map, mapCell.X, mapCell.Y, tileWidth, tileHeight)) - return; - - // If we can fit the animated water tile here, then proceed to - // randomly select a tile from the list of animated water tiles - // of the current size - int[] potentialTileIndexes = tileIndexesToPickFrom[sizeTypeIndex]; - tileImage = map.TheaterInstance.GetTile(animatedWaterTileSet.StartTileIndex + potentialTileIndexes[random.Next(potentialTileIndexes.Length)]); - - // Place the tile! - map.PlaceTerrainTileAt(tileImage, mapCell.CoordsToPoint()); - }); - } - } - - // Scripts can optionally also define helper methods to call. - - private bool IsWaterTile(int tileIndex) - { - if (tileIndex < waterTileSet.StartTileIndex || tileIndex >= waterTileSet.StartTileIndex + waterTileSet.TilesInSet) - return false; - - return true; - } - - private bool CanFitAnimatedWaterTileHere(Map map, int x, int y, int tileWidth, int tileHeight) - { - for (int cy = 0; cy < tileHeight; cy++) - { - for (int cx = 0; cx < tileWidth; cx++) - { - var mapCell = map.GetTile(x + cx, y + cy); - if (mapCell == null) - return false; - - if (!IsWaterTile(mapCell.TileIndex)) - return false; - } - } - - return true; - } - } -} \ No newline at end of file diff --git a/src/TSMapEditor/Config/Scripts/Replace Autumn Grass With Tall Grass.cs b/src/TSMapEditor/Config/Scripts/Replace Autumn Grass With Tall Grass.cs deleted file mode 100644 index 57bfa02c..00000000 --- a/src/TSMapEditor/Config/Scripts/Replace Autumn Grass With Tall Grass.cs +++ /dev/null @@ -1,99 +0,0 @@ -// Using clauses. -// Unless you know what's in the WAE code-base, you want to always include -// these "standard usings". -using System; -using TSMapEditor; -using TSMapEditor.Models; -using TSMapEditor.CCEngine; -using TSMapEditor.Rendering; -using TSMapEditor.GameMath; - -namespace WAEScript -{ - public class ReplaceAutumnGrassWithTallGrass - { - /// - /// Returns the description of this script. - /// All scripts must contain this function. - /// - public string GetDescription() => "This script replaces all autumn grass terrain with summer tall grass terrain. Continue?"; - - /// - /// Returns the message that is presented to the user if running this script succeeded. - /// All scripts must contain this function. - /// - public string GetSuccessMessage() - { - return error ?? "Successfully replaced the terrain of " + count + " cells."; - } - - int count = 0; - string error = null; - - /// - /// The function that actually does the magic. - /// - /// Map argument that allows us to access map data. - public void Perform(Map map) - { - // Fetch the tile sets. - var tallGrassTileSet = map.TheaterInstance.Theater.TileSets.Find(tileSet => tileSet.SetName == "Tall Grass"); - var tallGrassLATTileSet = map.TheaterInstance.Theater.TileSets.Find(tileSet => tileSet.SetName == "Tall/Short Grass LAT"); - var autumnGrassTileSet = map.TheaterInstance.Theater.TileSets.Find(tileSet => tileSet.SetName == "Autumn Grass"); - var autumnGrassLATTileSet = map.TheaterInstance.Theater.TileSets.Find(tileSet => tileSet.SetName == "Autumn Grass/Clear LAT"); - - if (tallGrassTileSet == null) - { - error = "Failed to find tall grass TileSet!"; - return; - } - - if (tallGrassLATTileSet == null) - { - error = "Failed to find tall grass LAT transition TileSet!"; - return; - } - - if (autumnGrassTileSet == null) - { - error = "Failed to find autumn grass TileSet!"; - return; - } - - if (autumnGrassLATTileSet == null) - { - error = "Failed to find autumn grass LAT transition TileSet!"; - return; - } - - // Go through all cells on the map. - map.DoForAllValidTiles(cell => - { - // Check whether the cell in question has autumn grass. - // If it does, replace its tile with tall grass. - if (autumnGrassTileSet.ContainsTile(cell.TileIndex)) - { - byte subTileIndex = 0; // LAT terrain does not use sub-tiles. - cell.ChangeTileIndex(tallGrassTileSet.StartTileIndex, subTileIndex); - count++; - return; - } - - // If the cell instead contains autumn-to-grass transition / LAT, - // replace it with the respective tall-grass-to-grass transition tile. - if (autumnGrassLATTileSet.ContainsTile(cell.TileIndex)) - { - // Calculate the index of the tile within the LAT transition tileset. - int indexWithinTileSet = cell.TileIndex - autumnGrassLATTileSet.StartTileIndex; - - // Based on the index above, calculate the new tile index. - int newTileIndex = tallGrassLATTileSet.StartTileIndex + indexWithinTileSet; - - byte subTileIndex = 0; // LAT terrain does not use sub-tiles. - cell.ChangeTileIndex(newTileIndex, subTileIndex); - count++; - } - }); - } - } -} \ No newline at end of file diff --git a/src/TSMapEditor/Config/Scripts/Replace Autumn Jungle Grass With Summer Grass.cs b/src/TSMapEditor/Config/Scripts/Replace Autumn Jungle Grass With Summer Grass.cs deleted file mode 100644 index 3f224aec..00000000 --- a/src/TSMapEditor/Config/Scripts/Replace Autumn Jungle Grass With Summer Grass.cs +++ /dev/null @@ -1,65 +0,0 @@ -// Using clauses. -// Unless you know what's in the WAE code-base, you want to always include -// these "standard usings". -using System; -using TSMapEditor; -using TSMapEditor.Models; -using TSMapEditor.CCEngine; -using TSMapEditor.Rendering; -using TSMapEditor.GameMath; - -namespace WAEScript -{ - public class ReplaceAutumnJungleGrassWithSummerGrass - { - /// - /// Returns the description of this script. - /// All scripts must contain this function. - /// - public string GetDescription() => "This script replaces all autumn grass overlay (AJGRASS) with summer jungle grass overlay (JGRASS). Continue?"; - - /// - /// Returns the message that is presented to the user if running this script succeeded. - /// All scripts must contain this function. - /// - public string GetSuccessMessage() - { - return error ?? "Successfully replaced " + count + " AJGRASS overlay with JGRASS overlay."; - } - - int count = 0; - string error = null; - - /// - /// The function that actually does the magic. - /// - /// Map argument that allows us to access map data. - public void Perform(Map map) - { - // Fetch the JGRASS (jungle grass, summer version) overlay. - var jungleGrassOverlayType = map.Rules.OverlayTypes.Find(ot => ot.ININame == "JGRASS"); - - if (jungleGrassOverlayType == null) - { - error = "Failed to find jungle grass overlay type (JGRASS)!"; - return; - } - - // Go through all cells on the map. - map.DoForAllValidTiles(cell => - { - // Skip cells that have no overlay. - if (cell.Overlay == null) - return; - - // Check whether the cell in question has AJGRASS overlay. - // If it does, replace it with JGRASS overlay. - if (cell.Overlay.OverlayType.ININame == "AJGRASS") - { - cell.Overlay.OverlayType = jungleGrassOverlayType; - count++; - } - }); - } - } -} \ No newline at end of file diff --git a/src/TSMapEditor/Config/Scripts/Replace Autumn Trees With Summer Trees.cs b/src/TSMapEditor/Config/Scripts/Replace Autumn Trees With Summer Trees.cs deleted file mode 100644 index d7bced60..00000000 --- a/src/TSMapEditor/Config/Scripts/Replace Autumn Trees With Summer Trees.cs +++ /dev/null @@ -1,71 +0,0 @@ -// Using clauses. -// Unless you know what's in the WAE code-base, you want to always include -// these "standard usings". -using System; -using TSMapEditor; -using TSMapEditor.Models; -using TSMapEditor.CCEngine; -using TSMapEditor.Rendering; -using TSMapEditor.GameMath; - -namespace WAEScript -{ - public class ReplaceAutumnTreesWithSummerTrees - { - /// - /// Returns the description of this script. - /// All scripts must contain this function. - /// - public string GetDescription() => "This script replaces all autumn trees with regular trees. Continue?"; - - /// - /// Returns the message that is presented to the user if running this script succeeded. - /// All scripts must contain this function. - /// - public string GetSuccessMessage() - { - return "Replaced " + count + " terrain objects."; - } - - int count = 0; - - /// - /// The function that actually does the magic. - /// - /// Map argument that allows us to access map data. - public void Perform(Map map) - { - // Go through all cells on the map. - map.DoForAllValidTiles(cell => - { - // Skip cells that have no terrain object. - if (cell.TerrainObject == null) - return; - - // Check if this cell has an autumn tree. Autumn tree terrain object types - // begin their INI name with "AT". - if (cell.TerrainObject.TerrainType.ININame.StartsWith("AT")) - { - // To get the name of the respective summer tree, - // we simply remove the 'A' from the beginning of the terrain object type's INI name. - string summerTreeININame = cell.TerrainObject.TerrainType.ININame.Substring(1); - - // Find the terrain object type of the summer tree. - // If it is not found for some reason, bail. - var terrainObjectType = map.Rules.TerrainTypes.Find(terrainType => terrainType.ININame == summerTreeININame); - if (terrainObjectType == null) - return; - - // Remove the original terrain object (the autumn tree). - map.RemoveTerrainObject(cell.TerrainObject); - - // Place a new terrain object (the summer tree). - var terrainObject = new TerrainObject(terrainObjectType, cell.CoordsToPoint()); - map.AddTerrainObject(terrainObject); - - count++; - } - }); - } - } -} \ No newline at end of file diff --git a/src/TSMapEditor/Config/Scripts/Replace Frost With Clear.cs b/src/TSMapEditor/Config/Scripts/Replace Frost With Clear.cs deleted file mode 100644 index c537f91d..00000000 --- a/src/TSMapEditor/Config/Scripts/Replace Frost With Clear.cs +++ /dev/null @@ -1,62 +0,0 @@ -// Using clauses. -// Unless you know what's in the WAE code-base, you want to always include -// these "standard usings". -using System; -using TSMapEditor; -using TSMapEditor.Models; -using TSMapEditor.CCEngine; -using TSMapEditor.Rendering; -using TSMapEditor.GameMath; - -namespace WAEScript -{ - public class ReplaceFrostWithClearScript - { - /// - /// Returns the description of this script. - /// All scripts must contain this function. - /// - public string GetDescription() => "This script replaces all '---Frost' terrain tiles with clear terrain. Continue?"; - - /// - /// Returns the message that is presented to the user if running this script succeeded. - /// All scripts must contain this function. - /// - public string GetSuccessMessage() - { - return error ?? "Successfully replaced the terrain of " + count + " cells."; - } - - int count = 0; - string error = null; - - /// - /// The function that actually does the magic. - /// - /// Map argument that allows us to access map data. - public void Perform(Map map) - { - // Fetch the tile set. - var frostTileSet = map.TheaterInstance.Theater.TileSets.Find(tileSet => tileSet.SetName == "---Frost"); - - if (frostTileSet == null) - { - error = "Failed to find '---Frost' TileSet!"; - return; - } - - // Go through all cells on the map. - map.DoForAllValidTiles(cell => - { - // Check whether the cell in question has frost. - // If it does, replace its tile with clear ground. - if (frostTileSet.ContainsTile(cell.TileIndex)) - { - cell.ChangeTileIndex(0, 0); // 0 as tile index and 0 as sub-tile index, resulting in clear ground - count++; - return; - } - }); - } - } -} \ No newline at end of file diff --git a/src/TSMapEditor/Config/Scripts/Smoothen Water.cs b/src/TSMapEditor/Config/Scripts/Smoothen Water.cs new file mode 100644 index 00000000..4a715f79 --- /dev/null +++ b/src/TSMapEditor/Config/Scripts/Smoothen Water.cs @@ -0,0 +1,178 @@ +// Script for smoothing water in vanilla Tiberian Sun maps. + +// Using clauses. +// Unless you know what's in the WAE code-base, you want to always include +// these "standard usings". +using System; +using TSMapEditor; +using TSMapEditor.Models; +using TSMapEditor.CCEngine; +using TSMapEditor.Rendering; +using TSMapEditor.GameMath; + +namespace WAEScript +{ + public class ApplyAnimatedWaterScript + { + /// + /// Returns the description of this script. + /// All scripts must contain this function. + /// + public string GetDescription() => "This script will smoothen the water on the map. Continue?"; + + /// + /// Returns the message that is presented to the user if running this script succeeded. + /// All scripts must contain this function. + /// + public string GetSuccessMessage() + { + if (error == null) + return "Water successfully smoothened."; + + return error; + } + + private string error; + + private TileSet waterTileSet; + + private const string WaterTileSetName = "Water"; + + /// + /// The function that actually does the magic. + /// + /// Map argument that allows us to access map data. + public void Perform(Map map) + { + waterTileSet = map.TheaterInstance.Theater.FindTileSet(WaterTileSetName); + if (waterTileSet == null) + { + error = "TileSet for water not found!"; + return; + } + + // The algorithm works as follows: + // 1. Go through all cells on the map. The following steps are repeated for every cell. + // 2. Check to make sure that we have not processed this cell yet. + // 3. Check whether the cell contains water. + // 4. If the cell contains water, try to fit a 2x2 water cell there. + // If it fits, place a random 2x2 water cell on the position. + // If it fails to fit, then replace the cell with a 1x1 water cell. + // In both cases, mark the cell as processed. + + // Create an array that holds information on + // which cells we have already processed. + const int maxCoord = 512; // 512 is the theoretical maximum coord of a cell (in a 256x256 map). + bool[][] processedCellsMap = new bool[maxCoord][]; + for (int i = 0; i < processedCellsMap.Length; i++) + { + processedCellsMap[i] = new bool[maxCoord]; + } + + // Specifies the tiles to pick for each round. + // If multiple tiles are specified for a round, one of them is selected + // with RNG (there are multiple kinds of 2x2 and 1x1 animated water tiles). + // All tiles of one group are assumed to be of the same size! + int[][] tileIndexesToPickFrom = new int[][] + { + new int[] { 0, 1, 2, 3, 4, 5 }, // 2x2 water tiles that do not contain rocks + new int[] { 8, 9, 10, 11, 12 }, // 1x1 water tiles that do not contain rocks + }; + + // Create a random number generator. + Random random = new Random(); + + // Go through all cells on the map. + // If we find water on a cell, replace it with the 1x1 water tile. + // This gives us a clean "baseline" to work with. + map.DoForAllValidTiles(mapCell => + { + // Check whether we have processed this cell before. + // If yes, skip it. + if (processedCellsMap[mapCell.Y][mapCell.X]) + return; + + // Check whether this cell contains water + if (!IsWaterTile(mapCell.TileIndex)) + return; + + // Go through the tile groups. + for (int sizeTypeIndex = 0; sizeTypeIndex < tileIndexesToPickFrom.Length; sizeTypeIndex++) + { + int[] potentialTileIndexes = tileIndexesToPickFrom[sizeTypeIndex]; + + // Fetch the first tile from this group so we can fetch its size. + ITileImage tileImage = map.TheaterInstance.GetTile(waterTileSet.StartTileIndex + potentialTileIndexes[0]); + int tileWidth = tileImage.Width; + int tileHeight = tileImage.Height; + + // We know that we're on a water cell, check if we can fit a tile from the "current group" here + // without overriding non-water cells or cells that we have already processed. + if (!CanFitWaterTileHere(map, mapCell.X, mapCell.Y, tileWidth, tileHeight, processedCellsMap)) + continue; // If not, try with another group if possible. + + // We can fit the tile here, fetch a random tile from our group and place it here! + int randomizedArrayIndex = random.Next(potentialTileIndexes.Length); + tileImage = map.TheaterInstance.GetTile(waterTileSet.StartTileIndex + potentialTileIndexes[randomizedArrayIndex]); + map.PlaceTerrainTileAt(tileImage, mapCell.CoordsToPoint()); + + // Mark the affected cell(s) as processed. + // For 1x1 tiles we'll only mark 1 cell, for 2x2 tiles we'll mark 4 cells. + for (int cy = 0; cy < tileHeight; cy++) + { + for (int cx = 0; cx < tileWidth; cx++) + { + processedCellsMap[mapCell.Y + cy][mapCell.X + cx] = true; + } + } + + // Continue to another cell. + break; + } + }); + } + + + // ********************************************************** + // Scripts can optionally also define helper methods to call. + // ********************************************************** + + + /// + /// Checks whether a cell contains water. + /// + private bool IsWaterTile(int tileIndex) + { + if (tileIndex < waterTileSet.StartTileIndex || tileIndex >= waterTileSet.StartTileIndex + waterTileSet.TilesInSet) + return false; + + return true; + } + + /// + /// Checks whether an area around a cell contains water so + /// that a water tile of a given size could fit there. + /// + private bool CanFitWaterTileHere(Map map, int x, int y, int tileWidth, int tileHeight, bool[][] processedCellsMap) + { + for (int cy = 0; cy < tileHeight; cy++) + { + for (int cx = 0; cx < tileWidth; cx++) + { + var mapCell = map.GetTile(x + cx, y + cy); + if (mapCell == null) + return false; + + // Do not allow placing over processed cells + if (processedCellsMap[mapCell.Y][mapCell.X]) + return false; + + if (!IsWaterTile(mapCell.TileIndex)) + return false; + } + } + + return true; + } + } +} \ No newline at end of file diff --git a/src/TSMapEditor/Config/SmudgeCollections.ini b/src/TSMapEditor/Config/SmudgeCollections.ini index efbf0cee..fb2be8ac 100644 --- a/src/TSMapEditor/Config/SmudgeCollections.ini +++ b/src/TSMapEditor/Config/SmudgeCollections.ini @@ -5,92 +5,56 @@ [SmudgeCollections] 0=Craters -1=Burns -2=SnowyCraters -3=SnowyBurns +1=SmallCraters +2=LargeCraters +3=Burns [Craters] Name=Random Crater -SmudgeType0=CR1E ; first entry is used for the texture on the sidebar, - ; so we want it to use a big crater -SmudgeType1=CR1B -SmudgeType2=CR1C -SmudgeType3=CR1D -SmudgeType4=CR1A -SmudgeType5=CR2A -SmudgeType6=CR2B -SmudgeType7=CR2C -SmudgeType8=CR2D -SmudgeType9=CR2E -SmudgeType10=CR3A -SmudgeType11=CR3B -SmudgeType12=CR3C -SmudgeType13=CR3D -SmudgeType14=CR3E -SmudgeType15=CR4A -SmudgeType16=CR4B -SmudgeType17=CR4C -SmudgeType18=CR4D -SmudgeType19=CR4E -SmudgeType20=CR5A -SmudgeType21=CR5B -SmudgeType22=CR5C -SmudgeType23=CR5D -SmudgeType24=CR5E -SmudgeType25=CR6A -SmudgeType26=CR6B -SmudgeType27=CR6C -SmudgeType28=CR6D -SmudgeType29=CR6E +SmudgeType0=CRATER12 ; first entry is used for the texture on the sidebar, + ; so we want it to use a big crater +SmudgeType1=CRATER11 +SmudgeType2=CRATER10 +SmudgeType3=CRATER09 +SmudgeType4=CRATER08 +SmudgeType5=CRATER07 +SmudgeType6=CRATER06 +SmudgeType7=CRATER05 +SmudgeType8=CRATER04 +SmudgeType9=CRATER03 +SmudgeType10=CRATER02 +SmudgeType11=CRATER01 -[Burns] -Name=Random Burn -SmudgeType0=SC1 -SmudgeType1=SC2 -SmudgeType2=SC3 -SmudgeType3=SC4 -SmudgeType4=SC5 -SmudgeType5=SC6 +[SmallCraters] +Name=Random 1x1 Crater +SmudgeType0=CRATER10 +SmudgeType1=CRATER09 +SmudgeType2=CRATER08 +SmudgeType3=CRATER07 +SmudgeType4=CRATER06 +SmudgeType5=CRATER05 +SmudgeType6=CRATER04 +SmudgeType7=CRATER03 +SmudgeType8=CRATER02 +SmudgeType9=CRATER01 -[SnowyCraters] -Name=Random Snowy Crater -SmudgeType0=CRS1E ; first entry is used for the texture on the sidebar, - ; so we want it to use a big crater -SmudgeType1=CRS1B -SmudgeType2=CRS1C -SmudgeType3=CRS1D -SmudgeType4=CRS1A -SmudgeType5=CRS2A -SmudgeType6=CRS2B -SmudgeType7=CRS2C -SmudgeType8=CRS2D -SmudgeType9=CRS2E -SmudgeType10=CRS3A -SmudgeType11=CRS3B -SmudgeType12=CRS3C -SmudgeType13=CRS3D -SmudgeType14=CRS3E -SmudgeType15=CRS4A -SmudgeType16=CRS4B -SmudgeType17=CRS4C -SmudgeType18=CRS4D -SmudgeType19=CRS4E -SmudgeType20=CRS5A -SmudgeType21=CRS5B -SmudgeType22=CRS5C -SmudgeType23=CRS5D -SmudgeType24=CRS5E -SmudgeType25=CRS6A -SmudgeType26=CRS6B -SmudgeType27=CRS6C -SmudgeType28=CRS6D -SmudgeType29=CRS6E +[LargeCraters] +Name=Random 2x2 Crater +SmudgeType0=CRATER12 +SmudgeType1=CRATER11 -[SnowyBurns] -Name=Random Snowy Burn -SmudgeType0=SCS1 -SmudgeType1=SCS2 -SmudgeType2=SCS3 -SmudgeType3=SCS4 -SmudgeType4=SCS5 -SmudgeType5=SCS6 +[Burns] +Name=Random Burn +SmudgeType0=BURNT12 ; first entry is used for the texture on the sidebar, + ; so we want it to use a big crater +SmudgeType1=BURNT11 +SmudgeType2=BURNT10 +SmudgeType3=BURNT09 +SmudgeType4=BURNT08 +SmudgeType5=BURNT07 +SmudgeType6=BURNT06 +SmudgeType7=BURNT05 +SmudgeType8=BURNT04 +SmudgeType9=BURNT03 +SmudgeType10=BURNT02 +SmudgeType11=BURNT01 diff --git a/src/TSMapEditor/Config/TeamTypeFlags.ini b/src/TSMapEditor/Config/TeamTypeFlags.ini index 5f9d285a..6e5cc935 100644 --- a/src/TSMapEditor/Config/TeamTypeFlags.ini +++ b/src/TSMapEditor/Config/TeamTypeFlags.ini @@ -8,6 +8,7 @@ Full=false Whiner=false Droppod=false +UseTransportOrigin=false Suicide=false Loadable=false Prebuild=false diff --git a/src/TSMapEditor/Config/TerrainGeneratorPresets.ini b/src/TSMapEditor/Config/TerrainGeneratorPresets.ini index e8675a1d..eca19ad1 100644 --- a/src/TSMapEditor/Config/TerrainGeneratorPresets.ini +++ b/src/TSMapEditor/Config/TerrainGeneratorPresets.ini @@ -11,262 +11,324 @@ ; TEMPERATE THEATER PRESETS ; ************************* -[SemiRoughConiferForest] -Name=Detailed Conifer Forest -TerrainTypeGroup0=0.125,0.0,TC01,TC02,TC03,TC04,TC05 -TerrainTypeGroup1=0.15,0.15,T01,T02,T05,T06,T07,T08,T09,T16 -TileGroup0=0.3,0.25,Pebbles -TileGroup1=0.05,0.0,Small Rocks -TileGroup2=0.02,0.02,Debris/Dirt -TileGroup3=0.6,0.3,Tall Grass -Theater=Temperate -Color=0,200,0 - -[ConiferForestNoGroups] -Name=Conifer Forest (no groups) -TerrainTypeGroup0=0.3,0.3,T01,T02,T05,T06,T07,T08,T09,T16 -TileGroup0=0.3,0.25,Pebbles -TileGroup1=0.05,0.0,Small Rocks -TileGroup2=0.02,0.02,Debris/Dirt -TileGroup3=0.6,0.3,Tall Grass -Theater=Temperate -Color=0,200,0 - -[ConiferForestNoGroupsSparse] -Name=Conifer Forest (sparse, no tall grass) -TerrainTypeGroup0=0.1,0.0,T01,T02,T05,T06,T07,T08,T09,T16 -TileGroup0=0.1,0.0,Pebbles -TileGroup1=0.01,0.0,Small Rocks -TileGroup2=0.02,0.02,Debris/Dirt -Theater=Temperate -Color=0,200,0 - -[ConiferForestNoGroupsVerySparse] -Name=Conifer Forest (very sparse) -TerrainTypeGroup0=0.01,0.0,T01,T02,T05,T06,T07,T08,T09,T16 -TileGroup0=0.05,0.0,Pebbles -TileGroup1=0.00005,0.0,Small Rocks -TileGroup2=0.005,0.005,Debris/Dirt,0,1,4,5,6,7,8,9,10 -Theater=Temperate -Color=0,200,0 - -[LeafyForest] -Name=Leafy Forest (thick) -TerrainTypeGroup0=0.02,0.0,BR6,BR7,BR8,BR9 -TerrainTypeGroup1=0.1,0.1,BR1,BR2,JBR01,JBR02,JBR03,JBR06,JBR07,JBR08,JBR09,JBR10 -TerrainTypeGroup2=0.3,0.3,T03,T10,T11,T12,T13,T14,T15,T17 -TileGroup0=0.3,0.25,Pebbles -TileGroup1=0.6,0.3,Tall Grass -Theater=Temperate -Color=0,255,0 - -[LeafyForestSparse] -Name=Leafy Forest (sparse) -TerrainTypeGroup0=0.01,0.0,BR1,BR2,JBR01,JBR02,JBR03,JBR06,JBR07,JBR08,JBR09,JBR10 -TerrainTypeGroup1=0.05,0.0,T03,T10,T11,T12,T13,T14,T15,T17 -TileGroup0=0.2,0.0,Pebbles -TileGroup1=0.5,0.0,Tall Grass -Theater=Temperate -Color=0,255,0 - -[Swampy] -Name=Swampy (no conifers) -TerrainTypeGroup0=0.15,0.0,BR6,BR7,BR8,BR9 -TerrainTypeGroup1=0.3,0.3,BR1,BR2,JBR01,JBR02,JBR03,JBR06,JBR07,JBR08,JBR09,JBR10 -TerrainTypeGroup2=0.3,0.3,T03,T10,T11,T12,T13,T14,T15,T17 -TileGroup0=0.3,0.25,Pebbles -TileGroup1=0.05,0.0,Small Rocks -TileGroup2=0.6,0.3,Tall Grass -OverlayGroup0=0.3,0.2,JGRASS,0,1,2,3,4,5,6,7,8,9,10 -Theater=Temperate -Color=0,255,0 - -[SwampyLimitedConifers] -Name=Swampy (limited conifers) -TerrainTypeGroup0=0.15,0.0,BR6,BR7,BR8,BR9 -TerrainTypeGroup1=0.3,0.3,BR1,BR2,JBR01,JBR02,JBR03,JBR06,JBR07,JBR08,JBR09,JBR10 -TerrainTypeGroup2=0.3,0.3,T03,T10,T11,T12,T13,T14,T15,T17 -TerrainTypeGroup3=0.15,0.15,T01,T02,T05,T06,T07,T08,T09,T16 -TileGroup0=0.3,0.25,Pebbles -TileGroup1=0.05,0.0,Small Rocks -TileGroup2=0.6,0.3,Tall Grass -OverlayGroup0=0.3,0.2,JGRASS,0,1,2,3,4,5,6,7,8,9,10 -Theater=Temperate -Color=0,255,0 - -[SwampyConiferGroups] -Name=Swampy (conifer groups) -TerrainTypeGroup0=0.15,0.0,BR6,BR7,BR8,BR9 -TerrainTypeGroup1=0.10,0.0,TC01,TC02,TC03,TC04,TC05 -TerrainTypeGroup2=0.3,0.3,BR1,BR2,JBR01,JBR02,JBR03,JBR06,JBR07,JBR08,JBR09,JBR10 -TerrainTypeGroup3=0.3,0.3,T03,T10,T11,T12,T13,T14,T15,T17 -TerrainTypeGroup4=0.15,0.15,T01,T02,T05,T06,T07,T08,T09,T16 -TileGroup0=0.3,0.25,Pebbles -TileGroup1=0.05,0.0,Small Rocks -TileGroup2=0.6,0.3,Tall Grass -OverlayGroup0=0.3,0.2,JGRASS,0,1,2,3,4,5,6,7,8,9,10 -Theater=Temperate -Color=0,255,0 - -[DirtGround] -Name=Dirt + Pebbles/Rough Ground -TileGroup0=0.3,0.25,Pebbles -TileGroup1=0.6,0.0,Dirt LAT -TileGroup2=0.03,0.0,Small Rocks -Theater=Temperate -Color=200,200,150 - -[SnowyConiferForest] -Name=Snowy Conifer Forest -TerrainTypeGroup0=0.05,0.0,STC01,STC02,STC03,STC04,STC05 -TerrainTypeGroup1=0.15,0.15,ST01,ST02,ST05,ST06,ST07,ST08,ST16 -TileGroup0=0.05,0.3,~~~Pebbles -Theater=Temperate -Color=200,200,255 - -[SnowryLeafyForest] -Name=Snowy Leafy Forest -TerrainTypeGroup0=0.3,0.0,ST03,ST10,ST11,ST12,ST13,ST14,ST15,ST17 -TileGroup0=0.2,0.5,~~~Pebbles -Theater=Temperate -Color=200,200,255 - -[AutumnLeafyForest] -Name=Autumn Leafy Forest (thick) -TerrainTypeGroup0=0.3,0.0,AT03,AT10,AT11,AT12,AT13,AT14,AT15,AT17 -TileGroup0=0.2,0.5,Pebbles -TileGroup1=0.7,0.3,Autumn Grass -OverlayGroup0=0.3,0.2,AJGRASS,0,1,2,3,4,5,6,7,8,9,10 -OverlayGroup1=0.1,0.75,ALEAVES,0,1,2,3,4,5,6,7 -Theater=Temperate -Color=255,200,0 - -[AutumnLeafyForestSparse] -Name=Autumn Leafy Forest (sparse) -TerrainTypeGroup0=0.08,0.0,AT03,AT10,AT11,AT12,AT13,AT14,AT15,AT17 -TileGroup0=0.1,0.2,Pebbles -TileGroup1=0.03,0.0,Small Rocks -TileGroup2=0.6,0.3,Autumn Grass -OverlayGroup0=0.1,0.05,AJGRASS,0,1,2,3,4,5,6,7,8,9,10 -OverlayGroup1=0.1,0.75,ALEAVES,0,1,2,3,4,5,6,7 -Theater=Temperate -Color=255,200,0 - -[AutumnField] -Name=Autumn Grass Field -TerrainTypeGroup0=0.05,0.0,AT03,AT10,AT11,AT12,AT13,AT14,AT15,AT17 -TileGroup0=0.1,0.2,Pebbles -TileGroup1=0.6,0.3,Autumn Grass -TileGroup2=0.03,0.0,Small Rocks -OverlayGroup0=0.1,0.05,AJGRASS,0,1,2,3,4,5,6,7,8,9,10 -OverlayGroup1=0.1,0.75,ALEAVES,0,1,2,3,4,5,6,7 -Theater=Temperate -Color=255,200,0 - -[MixedAutumnAndConiferForestSparse] -Name=Mixed Autumn + Conifer Forest -TerrainTypeGroup0=0.03,0.0,TC01,ATC02,TC03,TC04,ATC05 -TerrainTypeGroup1=0.08,0.0,AT03,AT10,AT11,AT12,AT13,AT14,AT15,AT17 -TerrainTypeGroup2=0.08,0.0,T01,T02,T05,T06,T07,T08,T09,T16 -TileGroup0=0.1,0.2,Pebbles -TileGroup1=0.03,0.0,Small Rocks -TileGroup2=0.7,0.35,Autumn Grass -OverlayGroup0=0.1,0.05,AJGRASS,0,1,2,3,4,5,6,7,8,9,10 -OverlayGroup1=0.1,0.75,ALEAVES,0,1,2,3,4,5,6,7 -Theater=Temperate -Color=255,200,0 - -[SemiRoughConiferForestAutumn] -Name=Detailed Conifer Forest (Autumn) -TerrainTypeGroup0=0.125,0.0,TC01,ATC02,TC03,TC04,ATC05 -TerrainTypeGroup1=0.15,0.15,T01,T02,T05,T06,T07,T08,T09,T16 -TileGroup0=0.3,0.25,Pebbles -TileGroup1=0.05,0.0,Small Rocks -TileGroup2=0.02,0.02,Debris/Dirt -TileGroup3=0.6,0.3,Autumn Grass -Theater=Temperate -Color=255,200,0 - -[SwampyAutumn] -Name=Swampy (no conifers) (Autumn) -TerrainTypeGroup0=0.15,0.0,BR6,BR7,BR8,BR9 -TerrainTypeGroup1=0.04,0.04,BR1,BR2 -TerrainTypeGroup2=0.3,0.3,AT03,AT10,AT11,AT12,AT13,AT14,AT15,AT17 -TileGroup0=0.3,0.25,Pebbles -TileGroup1=0.05,0.0,Small Rocks -TileGroup2=0.6,0.3,Autumn Grass -OverlayGroup0=0.3,0.2,AJGRASS,0,1,2,3,4,5,6,7,8,9,10 -Theater=Temperate -Color=255,200,0 - -[SwampyLimitedConifersAutumn] -Name=Swampy (limited conifers) (Autumn) -TerrainTypeGroup0=0.15,0.0,BR6,BR7,BR8,BR9 -TerrainTypeGroup1=0.04,0.04,BR1,BR2 -TerrainTypeGroup2=0.3,0.3,AT03,AT10,AT11,AT12,AT13,AT14,AT15,AT17 -TerrainTypeGroup3=0.15,0.15,T01,T02,T05,T06,T07,T08,T09,T16 -TileGroup0=0.3,0.25,Pebbles -TileGroup1=0.05,0.0,Small Rocks -TileGroup2=0.6,0.3,Autumn Grass -OverlayGroup0=0.3,0.2,AJGRASS,0,1,2,3,4,5,6,7,8,9,10 -Theater=Temperate -Color=255,200,0 - -[SwampyConiferGroupsAutumn] -Name=Swampy (conifer groups) (Autumn) -TerrainTypeGroup0=0.15,0.0,BR6,BR7,BR8,BR9 -TerrainTypeGroup1=0.10,0.0,TC01,ATC02,TC03,TC04,ATC05 -TerrainTypeGroup2=0.04,0.04,BR1,BR2 -TerrainTypeGroup3=0.3,0.3,AT03,AT10,AT11,AT12,AT13,AT14,AT15,AT17 -TerrainTypeGroup4=0.15,0.15,T01,T02,T05,T06,T07,T08,T09,T16 -TileGroup0=0.3,0.25,Pebbles -TileGroup1=0.05,0.0,Small Rocks -TileGroup2=0.6,0.3,Autumn Grass -OverlayGroup0=0.3,0.2,AJGRASS,0,1,2,3,4,5,6,7,8,9,10 -Theater=Temperate -Color=255,200,0 - -[IceFloes] -Name=Ice Floes -OverlayGroup0=0.3,0.0,ICEFLOES -Theater=Temperate -Color=200,200,255 +[SparseForestTemperate] +Name=Forest (Sparse) +TerrainTypeGroup0=0.1,0,TREE01,TREE02,TREE03,TREE04,TREE05,TREE06,TREE07,TREE08,TREE09,TREE10,TREE11,TREE12,TREE13,TREE14,TREE15,TREE25,TREE26,TREE27 +TerrainTypeGroup1=0.01,0,TREE16,TREE17,TREE18,TREE19,TREE20 +TileGroup0=0.1,0,LAT Grass Rough +TileGroup1=0.6,0.3,LAT Grass{comma} thick +OverlayGroup0=0.005,0,TROCK01 +OverlayGroup1=0.005,0,TROCK02 +OverlayGroup2=0.005,0,TROCK03 +OverlayGroup3=0.005,0,TROCK04 +OverlayGroup4=0.005,0,TROCK05 +Theater=TEMPERATE + +[ThickForestTemperate] +Name=Forest (Thick) +TerrainTypeGroup0=0.25,0,TREE01,TREE02,TREE03,TREE04,TREE05,TREE06,TREE07,TREE08,TREE09,TREE10,TREE11,TREE12,TREE13,TREE14,TREE15,TREE25,TREE26,TREE27 +TerrainTypeGroup1=0.03,0,TREE16,TREE17,TREE18,TREE19,TREE20 +TileGroup0=0.1,0,LAT Grass Rough +TileGroup1=0.4,0.3,LAT Grass{comma} thick +OverlayGroup0=0.01,0,TROCK01 +OverlayGroup1=0.01,0,TROCK02 +OverlayGroup2=0.01,0,TROCK03 +OverlayGroup3=0.01,0,TROCK04 +OverlayGroup4=0.01,0,TROCK05 +Theater=TEMPERATE + +[RoughGroundTemperate] +Name=Rough Ground +TileGroup0=0.15,0.0,LAT Grass{comma} thick +TileGroup1=0.8,0.0,LAT Grass Rough +OverlayGroup0=0.01,0,TROCK01 +OverlayGroup1=0.01,0,TROCK02 +OverlayGroup2=0.01,0,TROCK03 +OverlayGroup3=0.01,0,TROCK04 +OverlayGroup4=0.01,0,TROCK05 +Theater=TEMPERATE + +[BeachTemperate] +Name=Beach +TileGroup0=0.95,0.0,LAT Sand +TerrainTypeGroup0=0.03,0,TREE21,TREE22,TREE23,TREE24 +OverlayGroup0=0.005,0,SROCK01 +OverlayGroup1=0.005,0,SROCK02 +OverlayGroup2=0.005,0,SROCK03 +OverlayGroup3=0.005,0,SROCK04 +OverlayGroup4=0.005,0,SROCK05 +Theater=TEMPERATE + +; ************************* +; SNOW THEATER PRESETS +; ************************* + +[SnowyForestThick] +Name=Snowy Forest (Thick) +TerrainTypeGroup0=0.25,0.0,TREE01,TREE02,TREE03,TREE04,TREE05,TREE06,TREE07,TREE08,TREE09,TREE10,TREE11,TREE12,TREE13,TREE14,TREE15,TREE16,TREE17,TREE18,TREE19 +TileGroup0=0.075,0,LAT SnowyRock +TileGroup1=0.075,0,LAT Icy +TileGroup2=0.6,0.3,LAT Grass +OverlayGroup0=0.01,0,TROCK01 +OverlayGroup1=0.01,0,TROCK02 +OverlayGroup2=0.01,0,TROCK03 +OverlayGroup3=0.01,0,TROCK04 +OverlayGroup4=0.01,0,TROCK05 +Theater=SNOW + +[SnowyForestSparse] +Name=Snowy Forest (Sparse) +TerrainTypeGroup0=0.1,0.0,TREE01,TREE02,TREE03,TREE04,TREE05,TREE06,TREE07,TREE08,TREE09,TREE10,TREE11,TREE12,TREE13,TREE14,TREE15,TREE16,TREE17,TREE18,TREE19 +TileGroup0=0.075,0,LAT SnowyRock +TileGroup1=0.075,0,LAT Icy +TileGroup2=0.4,0.3,LAT Grass +OverlayGroup0=0.005,0,TROCK01 +OverlayGroup1=0.005,0,TROCK02 +OverlayGroup2=0.005,0,TROCK03 +OverlayGroup3=0.005,0,TROCK04 +OverlayGroup4=0.005,0,TROCK05 +Theater=SNOW + +[ConiferForestThick] +Name=Conifer Forest (Thick) +TerrainTypeGroup0=0.25,0.0,TREE20,TREE21,TREE22,TREE23,TREE24,TREE25,TREE26,TREE27,TREE28 +TileGroup0=0.075,0,LAT SnowyRock +TileGroup1=0.075,0,LAT Icy +TileGroup2=0.6,0.3,LAT Grass +OverlayGroup0=0.01,0,TROCK01 +OverlayGroup1=0.01,0,TROCK02 +OverlayGroup2=0.01,0,TROCK03 +OverlayGroup3=0.01,0,TROCK04 +OverlayGroup4=0.01,0,TROCK05 +Theater=SNOW + +[ConiferForestSparse] +Name=Conifer Forest (Sparse) +TerrainTypeGroup0=0.1,0.0,TREE20,TREE21,TREE22,TREE23,TREE24,TREE25,TREE26,TREE27,TREE28 +TileGroup0=0.075,0,LAT SnowyRock +TileGroup1=0.075,0,LAT Icy +TileGroup2=0.4,0.3,LAT Grass +OverlayGroup0=0.005,0,TROCK01 +OverlayGroup1=0.005,0,TROCK02 +OverlayGroup2=0.005,0,TROCK03 +OverlayGroup3=0.005,0,TROCK04 +OverlayGroup4=0.005,0,TROCK05 +Theater=SNOW + +[MixedForestThickSnow] +Name=Mixed Forest (Thick) +TerrainTypeGroup0=0.125,0.0,TREE01,TREE02,TREE03,TREE04,TREE05,TREE06,TREE07,TREE08,TREE09,TREE10,TREE11,TREE12,TREE13,TREE14,TREE15,TREE16,TREE17,TREE18,TREE19 +TerrainTypeGroup1=0.125,0.0,TREE20,TREE21,TREE22,TREE23,TREE24,TREE25,TREE26,TREE27,TREE28 +TileGroup0=0.075,0,LAT SnowyRock +TileGroup1=0.075,0,LAT Icy +TileGroup2=0.6,0.3,LAT Grass +OverlayGroup0=0.01,0,TROCK01 +OverlayGroup1=0.01,0,TROCK02 +OverlayGroup2=0.01,0,TROCK03 +OverlayGroup3=0.01,0,TROCK04 +OverlayGroup4=0.01,0,TROCK05 +Theater=SNOW + +[MixedForestSparseSnow] +Name=Mixed Forest (Sparse) +TerrainTypeGroup0=0.05,0.0,TREE01,TREE02,TREE03,TREE04,TREE05,TREE06,TREE07,TREE08,TREE09,TREE10,TREE11,TREE12,TREE13,TREE14,TREE15,TREE16,TREE17,TREE18,TREE19 +TerrainTypeGroup1=0.05,0.0,TREE20,TREE21,TREE22,TREE23,TREE24,TREE25,TREE26,TREE27,TREE28 +TileGroup0=0.075,0,LAT SnowyRock +TileGroup1=0.075,0,LAT Icy +TileGroup2=0.4,0.3,LAT Grass +OverlayGroup0=0.005,0,TROCK01 +OverlayGroup1=0.005,0,TROCK02 +OverlayGroup2=0.005,0,TROCK03 +OverlayGroup3=0.005,0,TROCK04 +OverlayGroup4=0.005,0,TROCK05 +Theater=SNOW + +[RockyGround] +Name=Rocky Ground +TileGroup0=0.6,0.0,LAT SnowyRock +OverlayGroup0=0.008,0,TROCK01 +OverlayGroup1=0.008,0,TROCK02 +OverlayGroup2=0.008,0,TROCK03 +OverlayGroup3=0.008,0,TROCK04 +OverlayGroup4=0.008,0,TROCK05 +OverlayGroup5=0.008,0,SROCK01 +OverlayGroup6=0.008,0,SROCK02 +OverlayGroup7=0.008,0,SROCK03 +Theater=SNOW + +[RoughGroundSnow] +Name=Rough Ground +TileGroup0=0.15,0.0,LAT SnowyRock +TileGroup1=0.8,0.0,LAT Grass +OverlayGroup0=0.01,0,TROCK01 +OverlayGroup1=0.01,0,TROCK02 +OverlayGroup2=0.01,0,TROCK03 +OverlayGroup3=0.01,0,TROCK04 +OverlayGroup4=0.01,0,TROCK05 +Theater=SNOW + +; ************************* +; URBAN THEATER PRESETS +; ************************* + +[PavementUrban] +Name=Pavement +TileGroup0=0.02,0,Pavement +TileGroup1=1,0,Lat Grass +SmudgeGroup0=0.001,0,CRATER12 +SmudgeGroup1=0.001,0,CRATER11 +SmudgeGroup2=0.002,0,CRATER01 +SmudgeGroup3=0.002,0,CRATER03 +SmudgeGroup4=0.002,0,CRATER05 +SmudgeGroup5=0.001,0,BURNT12 +SmudgeGroup6=0.002,0,BURNT11 +SmudgeGroup7=0.002,0,BURNT02 +Theater=URBAN + +; ************************* +; NEWURBAN THEATER PRESETS +; ************************* + +[SparseForestNewurban] +Name=Forest (Sparse) +TerrainTypeGroup0=0.1,0,TREE01,TREE02,TREE03,TREE04,TREE05,TREE06,TREE07,TREE08,TREE09,TREE10,TREE11,TREE12,TREE13,TREE14,TREE15,TREE25,TREE26,TREE27 +TerrainTypeGroup1=0.01,0,TREE16,TREE17,TREE18,TREE19,TREE20 +TileGroup0=0.1,0,LAT Grass Rough +TileGroup1=0.6,0.3,LAT Grass{comma} thick +OverlayGroup0=0.005,0,TROCK01 +OverlayGroup1=0.005,0,TROCK02 +OverlayGroup2=0.005,0,TROCK03 +OverlayGroup3=0.005,0,TROCK04 +OverlayGroup4=0.005,0,TROCK05 +Theater=NEWURBAN + +[ThickForestNewurban] +Name=Forest (Thick) +TerrainTypeGroup0=0.25,0,TREE01,TREE02,TREE03,TREE04,TREE05,TREE06,TREE07,TREE08,TREE09,TREE10,TREE11,TREE12,TREE13,TREE14,TREE15,TREE25,TREE26,TREE27 +TerrainTypeGroup1=0.03,0,TREE16,TREE17,TREE18,TREE19,TREE20 +TileGroup0=0.1,0,LAT Grass Rough +TileGroup1=0.4,0.3,LAT Grass{comma} thick +OverlayGroup0=0.01,0,TROCK01 +OverlayGroup1=0.01,0,TROCK02 +OverlayGroup2=0.01,0,TROCK03 +OverlayGroup3=0.01,0,TROCK04 +OverlayGroup4=0.01,0,TROCK05 +Theater=NEWURBAN + +[RoughGroundNewurban] +Name=Rough Ground +TileGroup0=0.15,0.0,LAT Grass{comma} thick +TileGroup1=0.8,0.0,LAT Grass Rough +OverlayGroup0=0.01,0,TROCK01 +OverlayGroup1=0.01,0,TROCK02 +OverlayGroup2=0.01,0,TROCK03 +OverlayGroup3=0.01,0,TROCK04 +OverlayGroup4=0.01,0,TROCK05 +Theater=NEWURBAN + +[BeachNewurban] +Name=Beach +TileGroup0=0.95,0.0,LAT Sand +TerrainTypeGroup0=0.03,0,TREE21,TREE22,TREE23,TREE24,TREE31,TREE32 +OverlayGroup0=0.005,0,SROCK01 +OverlayGroup1=0.005,0,SROCK02 +OverlayGroup2=0.005,0,SROCK03 +OverlayGroup3=0.005,0,SROCK04 +OverlayGroup4=0.005,0,SROCK05 +Theater=NEWURBAN + +[PavementNewurban] +Name=Pavement +TileGroup0=0.02,0,Pavement +TileGroup1=1,0,Lat Pavement +SmudgeGroup0=0.001,0,CRATER12 +SmudgeGroup1=0.001,0,CRATER11 +SmudgeGroup2=0.002,0,CRATER01 +SmudgeGroup3=0.002,0,CRATER03 +SmudgeGroup4=0.002,0,CRATER05 +SmudgeGroup5=0.001,0,BURNT12 +SmudgeGroup6=0.002,0,BURNT11 +SmudgeGroup7=0.002,0,BURNT02 +Theater=NEWURBAN ; ************************* ; DESERT THEATER PRESETS ; ************************* -[DESRockyGround] -Name=Very Rocky Ground -TerrainTypeGroup0=0.04,0.0,SROCK01,SROCK02,SROCK03,SROCK04,SROCK05,SROCK06,SROCK07 -TileGroup0=0.4,0.0,Rocks -TileGroup1=0.2,0.5,Pebbles,0 -TileGroup2=0.6,0.6,Gray Sand LAT tile -Theater=Desert - -[DESRoughGround] -Name=Rough Ground (Gray Sand + Pebbles) -TileGroup0=0.3,0.0,Pebbles,0 -TileGroup1=0.1,0.0,Pebbles,1,2 -TileGroup2=0.6,0.6,Gray Sand LAT tile -Theater=Desert - -[DESLightSandPebbles] -Name=Light Sand + Small Pebbles -TileGroup0=0.2,0.0,Pebbles,1,2 -TileGroup1=0.6,0.6,~~~Alt Clear -Theater=Desert - -[DESDryBushesCacti] -Name=Dry Bushes + Cacti -TerrainTypeGroup0=0.2,0.0,BR1,BR2,BR6,BR7,BR8,BR9 -TerrainTypeGroup1=0.15,0.0,BR4,BR5 -Theater=Desert - -[DESHumidBushesGreen] -Name=Humid Bushes + Green LAT -TerrainTypeGroup0=0.2,0.0,JBR01,JBR02,JBR03,JBR04,JBR05,JBR06,JBR07,JBR08,JBR09,JBR10 -TileGroup0=0.2,0.2,Pebbles -TileGroup1=0.6,0.6,Green LAT tile -Theater=Desert +[SparseForestDesert] +Name=Forest (Sparse) +TerrainTypeGroup0=0.1,0,TREE01,TREE02,TREE03,TREE04,TREE05,TREE06,TREE07,TREE08,TREE09,TREE10,TREE11,TREE12,TREE13,TREE14,TREE15 +TerrainTypeGroup1=0.01,0,TREE16,TREE17,TREE18,TREE19,TREE20 +TileGroup0=0.1,0,LAT Grass Rough +TileGroup1=0.6,1,LAT Grass{comma} thick +OverlayGroup0=0.005,0,TROCK01 +OverlayGroup1=0.005,0,TROCK02 +OverlayGroup2=0.005,0,TROCK03 +OverlayGroup3=0.005,0,TROCK04 +OverlayGroup4=0.005,0,TROCK05 +Theater=DESERT + +[ThickForestDesert] +Name=Forest (Thick) +TerrainTypeGroup0=0.25,0,TREE01,TREE02,TREE03,TREE04,TREE05,TREE06,TREE07,TREE08,TREE09,TREE10,TREE11,TREE12,TREE13,TREE14,TREE15 +TerrainTypeGroup1=0.03,0,TREE16,TREE17,TREE18,TREE19,TREE20 +TileGroup0=0.1,0,LAT Grass Rough +TileGroup1=0.8,1,LAT Grass{comma} thick +OverlayGroup0=0.01,0,TROCK01 +OverlayGroup1=0.01,0,TROCK02 +OverlayGroup2=0.01,0,TROCK03 +OverlayGroup3=0.01,0,TROCK04 +OverlayGroup4=0.01,0,TROCK05 +Theater=DESERT + +[RoughGroundDesert] +Name=Rough Ground +TileGroup0=0.4,0.0,LAT Grass Rough +OverlayGroup0=0.01,0,SROCK01 +OverlayGroup1=0.01,0,SROCK02 +OverlayGroup2=0.01,0,SROCK03 +OverlayGroup3=0.01,0,SROCK04 +OverlayGroup4=0.01,0,SROCK05 +Theater=DESERT + +[BeachDesert] +Name=Beach +TileGroup0=0.95,0.0,LAT Sand +TerrainTypeGroup0=0.03,0,TREE21,TREE22,TREE23,TREE24,TREE31,TREE32 +OverlayGroup0=0.005,0,SROCK01 +OverlayGroup1=0.005,0,SROCK02 +OverlayGroup2=0.005,0,SROCK03 +OverlayGroup3=0.005,0,SROCK04 +OverlayGroup4=0.005,0,SROCK05 +Theater=DESERT + +[Desert] +Name=Desert +TerrainTypeGroup0=0.004,0,TREE28,TREE29,TREE30 +Theater=DESERT + +; ************************* +; LUNAR THEATER PRESETS +; ************************* +[RoughGroundLunar] +Name=Rough Ground +TileGroup0=0.8,0.0,LAT Moon Dirt Dark +TileGroup1=0.4,0.0,LAT Moon Dirt Light +OverlayGroup0=0.004,0,TROCK01 +OverlayGroup1=0.004,0,TROCK02 +OverlayGroup2=0.004,0,TROCK03 +OverlayGroup3=0.004,0,TROCK04 +OverlayGroup4=0.002,0,LUNRK1 +OverlayGroup5=0.002,0,LUNRK2 +OverlayGroup6=0.002,0,LUNRK3 +OverlayGroup7=0.002,0,LUNRK4 +SmudgeGroup0=0.001,0,CRATER12 +SmudgeGroup1=0.001,0,CRATER11 +SmudgeGroup2=0.002,0,CRATER01 +SmudgeGroup3=0.002,0,CRATER03 +SmudgeGroup4=0.002,0,CRATER05 +SmudgeGroup5=0.001,0,BURNT12 +SmudgeGroup6=0.002,0,BURNT11 +SmudgeGroup7=0.002,0,BURNT02 +Theater=LUNAR diff --git a/src/TSMapEditor/Config/TerrainObjectCollections.ini b/src/TSMapEditor/Config/TerrainObjectCollections.ini index 4b9c4d8b..737aee21 100644 --- a/src/TSMapEditor/Config/TerrainObjectCollections.ini +++ b/src/TSMapEditor/Config/TerrainObjectCollections.ini @@ -1,88 +1,91 @@ -; C&C World-Altering Editor (WAE) +; C&C World-Altering Editor (WAE) ; https://github.com/Rampastring/WorldAlteringEditor ; Specifies terrain object collections available in the sidebar. [TerrainObjectCollections] -0=TemperateConifers -1=LeafyTrees -2=AutumnTrees -3=AltTerrainConifers -4=AltTerrainLeafyTrees -5=BurnedConifers -6=BurnedLeafyTrees +0=DeciduousTrees +1=TropicalTrees +2=ConiferTrees +3=SnowConiferTrees +4=TemperateCactus +5=Cacti +6=ExoticTrees +7=DeadTrees -[TemperateConifers] -Name=Random Temperate Conifer -TerrainObjectType0=T01 -TerrainObjectType1=T02 -TerrainObjectType2=T05 -TerrainObjectType3=T06 -TerrainObjectType4=T07 -TerrainObjectType5=T08 -TerrainObjectType6=T09 -TerrainObjectType7=T16 +[DeciduousTrees] +Name=Deciduous Trees +TerrainObjectType0=TREE01 +TerrainObjectType1=TREE02 +TerrainObjectType2=TREE03 +TerrainObjectType3=TREE04 +TerrainObjectType4=TREE05 +TerrainObjectType5=TREE06 +TerrainObjectType6=TREE07 +TerrainObjectType7=TREE08 +TerrainObjectType8=TREE09 +TerrainObjectType9=TREE10 +TerrainObjectType10=TREE11 +TerrainObjectType11=TREE12 +TerrainObjectType12=TREE13 +TerrainObjectType13=TREE14 +TerrainObjectType14=TREE15 +TerrainObjectType15=TREE16 +TerrainObjectType16=TREE17 +TerrainObjectType17=TREE18 +TerrainObjectType18=TREE19 +AllowedTheaters=TEMPERATE,SNOW,URBAN,NEWURBAN,DESERT -[LeafyTrees] -Name=Random Leafy Tree -TerrainObjectType0=T03 -TerrainObjectType1=T10 -TerrainObjectType2=T11 -TerrainObjectType3=T12 -TerrainObjectType4=T13 -TerrainObjectType5=T14 -TerrainObjectType6=T15 -TerrainObjectType7=T17 +[TropicalTrees] +Name=Tropical Trees +TerrainObjectType2=TREE20 +TerrainObjectType3=TREE21 +TerrainObjectType4=TREE22 +TerrainObjectType5=TREE23 +TerrainObjectType6=TREE24 +AllowedTheaters=TEMPERATE,URBAN,NEWURBAN,DESERT -[AutumnTrees] -Name=Random Autumn Tree -TerrainObjectType0=AT03 -TerrainObjectType1=AT10 -TerrainObjectType2=AT11 -TerrainObjectType3=AT12 -TerrainObjectType4=AT13 -TerrainObjectType5=AT14 -TerrainObjectType6=AT15 -TerrainObjectType7=AT17 +[ConiferTrees] +Name=Conifer Trees +TerrainObjectType0=TREE25 +TerrainObjectType1=TREE26 +TerrainObjectType2=TREE27 +AllowedTheaters=TEMPERATE,URBAN,NEWURBAN,DESERT -[AltTerrainConifers] -Name=Random Alt. Conifer -TerrainObjectType0=ST01 -TerrainObjectType1=ST02 -TerrainObjectType2=ST05 -TerrainObjectType3=ST06 -TerrainObjectType4=ST07 -TerrainObjectType5=ST08 -TerrainObjectType6=ST16 +[SnowConiferTrees] +Name=Conifer Trees +TerrainObjectType0=TREE20 +TerrainObjectType1=TREE21 +TerrainObjectType2=TREE22 +TerrainObjectType3=TREE23 +TerrainObjectType4=TREE24 +TerrainObjectType5=TREE25 +TerrainObjectType6=TREE26 +TerrainObjectType7=TREE27 +AllowedTheaters=SNOW -[AltTerrainLeafyTrees] -Name=Random Alt. Leafy Tree -TerrainObjectType0=ST03 -TerrainObjectType1=ST10 -TerrainObjectType2=ST11 -TerrainObjectType3=ST12 -TerrainObjectType4=ST13 -TerrainObjectType5=ST14 -TerrainObjectType6=ST15 -TerrainObjectType7=ST17 +[TemperateCactus] +Name=Cacti +TerrainObjectType0=TREE28 +AllowedTheaters=TEMPERATE,URBAN -[BurnedConifers] -Name=Random Burned Conifer -TerrainObjectType0=BT01 -TerrainObjectType1=BT02 -TerrainObjectType2=BT05 -TerrainObjectType3=BT06 -TerrainObjectType4=BT07 -TerrainObjectType5=BT16 +[Cacti] +Name=Cacti +TerrainObjectType0=TREE28 +TerrainObjectType1=TREE29 +TerrainObjectType2=TREE30 +AllowedTheaters=NEWURBAN,DESERT -[BurnedLeafyTrees] -Name=Random Burned Leafy Tree -TerrainObjectType0=BT03 -TerrainObjectType1=BT10 -TerrainObjectType2=BT11 -TerrainObjectType3=BT12 -TerrainObjectType4=BT13 -TerrainObjectType5=BT14 -TerrainObjectType6=BT15 -TerrainObjectType7=BT17 +[ExoticTrees] +Name=Exotic Trees +TerrainObjectType0=TREE31 +TerrainObjectType1=TREE32 +TerrainObjectType2=TREE33 +AllowedTheaters=NEWURBAN,DESERT +[DeadTrees] +Name=Dead Trees +TerrainObjectType0=TREE34 +TerrainObjectType1=TREE35 +TerrainObjectType2=TREE36 +AllowedTheaters=NEWURBAN,DESERT diff --git a/src/TSMapEditor/Config/TerrainTypeImpassability.ini b/src/TSMapEditor/Config/TerrainTypeImpassability.ini index d0f39fae..1eea6106 100644 --- a/src/TSMapEditor/Config/TerrainTypeImpassability.ini +++ b/src/TSMapEditor/Config/TerrainTypeImpassability.ini @@ -3,128 +3,110 @@ ; Specifies which cells of terrain objects should be marked as impassable. -; ****************** -; Autumn Tree Groups -; ****************** - -[ATC02] -ImpassableCells=0,0|0,1|1,0|1,1 - -[ATC05] -ImpassableCells=0,0|0,-1|-1,0|1,0|1,1 - -; ****** -; Bushes -; ****** - -[BR6] -ImpassableCells=0,0|0,1|1,0|1,1 - -[BR7] -ImpassableCells=0,0|1,0|1,1 - -[BR8] -ImpassableCells=0,0|1,0|2,0|1,1 - -[BR9] -ImpassableCells=0,0|0,1|1,0|1,1 - -; ************* -; Autumn Bushes -; ************* - -[ABR6] -ImpassableCells=0,0|0,1|1,0|1,1 - -[ABR7] -ImpassableCells=0,0|1,0|1,1 - -[ABR8] -ImpassableCells=0,0|1,0|2,0|1,1 - -[ABR9] -ImpassableCells=0,0|0,1|1,0|1,1 - -; *************** -; Alt Tree Groups -; *************** - -[STC01] -ImpassableCells=0,0 - -[STC02] -ImpassableCells=0,0|0,1|1,0|1,1 - -[STC03] -ImpassableCells=0,0|0,1|1,0|1,1 - -[STC04] -ImpassableCells=0,0|0,-1|-1,0 - -[STC05] -ImpassableCells=0,0|0,-1|-1,0|1,0|1,1 - -; ****************** -; Burned Tree Groups -; ****************** - -[BTC01] -ImpassableCells=0,0 - -[BTC02] -ImpassableCells=0,0|0,1|1,0|1,1 - -[BTC03] -ImpassableCells=0,0|0,1|1,0|1,1 - -[BTC04] -ImpassableCells=0,0|0,-1|-1,0 - -[BTC05] -ImpassableCells=0,0|0,-1|-1,0|1,0|1,1 - -; ******************* -; Regular Tree Groups -; ******************* - -[TC01] -ImpassableCells=0,0 - -[TC02] -ImpassableCells=0,0|0,1|1,0|1,1 - -[TC03] -ImpassableCells=0,0|0,1|1,0|1,1 - -[TC04] -ImpassableCells=0,0|0,-1|-1,0 - -[TC05] -ImpassableCells=0,0|0,-1|-1,0|1,0|1,1 - -; ********** -; Sand Rocks -; ********** - -[SROCK01] -ImpassableCells=0,0 - -[SROCK02] -ImpassableCells=0,0 - -[SROCK03] -ImpassableCells=0,0 - -[SROCK04] -ImpassableCells=0,0 - -[SROCK05] -ImpassableCells=0,0 - -[SROCK06] -ImpassableCells=0,0|1,0|0,1 - -[SROCK07] -ImpassableCells=0,0|1,0|0,1 - - +; ; ****************** +; ; Autumn Tree Groups +; ; ****************** +; +; [ATC02] +; ImpassableCells=0,0|0,1|1,0|1,1 +; +; [ATC05] +; ImpassableCells=0,0|0,-1|-1,0|1,0|1,1 +; +; ; ****** +; ; Bushes +; ; ****** +; +; [BR6] +; ImpassableCells=0,0|0,1|1,0|1,1 +; +; [BR7] +; ImpassableCells=0,0|1,0|1,1 +; +; [BR8] +; ImpassableCells=0,0|1,0|2,0|1,1 +; +; [BR9] +; ImpassableCells=0,0|0,1|1,0|1,1 +; +; ; *************** +; ; Alt Tree Groups +; ; *************** +; +; [STC01] +; ImpassableCells=0,0 +; +; [STC02] +; ImpassableCells=0,0|0,1|1,0|1,1 +; +; [STC03] +; ImpassableCells=0,0|0,1|1,0|1,1 +; +; [STC04] +; ImpassableCells=0,0|0,-1|-1,0 +; +; [STC05] +; ImpassableCells=0,0|0,-1|-1,0|1,0|1,1 +; +; ; ****************** +; ; Burned Tree Groups +; ; ****************** +; +; [BTC01] +; ImpassableCells=0,0 +; +; [BTC02] +; ImpassableCells=0,0|0,1|1,0|1,1 +; +; [BTC03] +; ImpassableCells=0,0|0,1|1,0|1,1 +; +; [BTC04] +; ImpassableCells=0,0|0,-1|-1,0 +; +; [BTC05] +; ImpassableCells=0,0|0,-1|-1,0|1,0|1,1 +; +; ; ******************* +; ; Regular Tree Groups +; ; ******************* +; +; [TC01] +; ImpassableCells=0,0 +; +; [TC02] +; ImpassableCells=0,0|0,1|1,0|1,1 +; +; [TC03] +; ImpassableCells=0,0|0,1|1,0|1,1 +; +; [TC04] +; ImpassableCells=0,0|0,-1|-1,0 +; +; [TC05] +; ImpassableCells=0,0|0,-1|-1,0|1,0|1,1 +; +; ; ********** +; ; Sand Rocks +; ; ********** +; +; [SROCK01] +; ImpassableCells=0,0 +; +; [SROCK02] +; ImpassableCells=0,0 +; +; [SROCK03] +; ImpassableCells=0,0 +; +; [SROCK04] +; ImpassableCells=0,0 +; +; [SROCK05] +; ImpassableCells=0,0 +; +; [SROCK06] +; ImpassableCells=0,0|1,0|0,1 +; +; [SROCK07] +; ImpassableCells=0,0|1,0|0,1 diff --git a/src/TSMapEditor/Config/Theaters.ini b/src/TSMapEditor/Config/Theaters.ini index 47d79405..14af9ef4 100644 --- a/src/TSMapEditor/Config/Theaters.ini +++ b/src/TSMapEditor/Config/Theaters.ini @@ -5,22 +5,63 @@ [Theaters] -0=Temperate -1=Desert +0=TEMPERATE +1=SNOW +2=DESERT +3=URBAN +4=NEWURBAN +5=LUNAR -[Temperate] -ConfigINIPath=INI/Temperat.ini -ContentMIXName=IsoTemp.mix,Temperat.mix +[TEMPERATE] +ConfigINIPath=temperatmd.ini +ContentMIXName=isotemmd.mix,isotemp.mix,temperat.mix,tem.mix TerrainPaletteName=isotem.pal UnitPaletteName=unittem.pal -;TiberiumPaletteName= +TiberiumPaletteName=temperat.pal FileExtension=.tem +NewTheaterBuildingLetter=T + +[SNOW] +ConfigINIPath=snowmd.ini +ContentMIXName=isosnomd.mix,isosnow.mix,snowmd.mix,snow.mix,sno.mix +TerrainPaletteName=isosno.pal +UnitPaletteName=unitsno.pal +TiberiumPaletteName=snow.pal +FileExtension=.sno NewTheaterBuildingLetter=A -[Desert] -ConfigINIPath=INI/Desert.ini -ContentMIXName=IsoDes.mix,Desert.mix +[DESERT] +ConfigINIPath=desertmd.ini +ContentMIXName=isodesmd.mix,isodes.mix,desert.mix,des.mix TerrainPaletteName=isodes.pal UnitPaletteName=unitdes.pal +TiberiumPaletteName=desert.pal FileExtension=.des -NewTheaterBuildingLetter=T +NewTheaterBuildingLetter=D + +[URBAN] +ConfigINIPath=urbanmd.ini +ContentMIXName=isourbmd.mix,isourb.mix,urban.mix,urb.mix +TerrainPaletteName=isourb.pal +UnitPaletteName=uniturb.pal +TiberiumPaletteName=urban.pal +FileExtension=.urb +NewTheaterBuildingLetter=U + +[NEWURBAN] +ConfigINIPath=urbannmd.ini +ContentMIXName=isoubnmd.mix,isoubn.mix,urbann.mix,ubn.mix +TerrainPaletteName=isoubn.pal +UnitPaletteName=unitubn.pal +TiberiumPaletteName=urbann.pal +FileExtension=.ubn +NewTheaterBuildingLetter=N + +[LUNAR] +ConfigINIPath=lunarmd.ini +ContentMIXName=isolunmd.mix,isolun.mix,lunar.mix,lun.mix +TerrainPaletteName=isolun.pal +UnitPaletteName=unitlun.pal +TiberiumPaletteName=lunar.pal +FileExtension=.lun +NewTheaterBuildingLetter=L diff --git a/src/TSMapEditor/Config/Tiberiums.ini b/src/TSMapEditor/Config/Tiberiums.ini index 83e5e6ee..6ec8ddbe 100644 --- a/src/TSMapEditor/Config/Tiberiums.ini +++ b/src/TSMapEditor/Config/Tiberiums.ini @@ -4,7 +4,7 @@ ; A list of overlays used by each Tiberium type. [Tiberiums] -Riparius=RTIB01,RTIB02,RTIB03,RTIB04,RTIB05,RTIB06,RTIB07,RTIB08,RTIB09,RTIB10,RTIB11,RTIB12 -Cruentus=BLUGEM01,BLUGEM02,BLUGEM03,BLUGEM04,GRNGEM01,GRNGEM02,GRNGEM03,GRNGEM04,MIXGEM01,MIXGEM02,MIXGEM03,MIXGEM04 -Vinifera=QTIB01,QTIB02,QTIB03,QTIB04,QTIB05,QTIB06,QTIB07,QTIB08,QTIB09,QTIB10,QTIB11,QTIB12 -Aboreus=ZORE01,ZORE02,ZORE03,ZORE04,ZORE05,ZORE06,ZORE07,ZORE08,ZORE09,ZORE10,ZORE11,ZORE12,SCRAP01,SCRAP02,SCRAP03,SCRAP04 +Riparius=TIB01,TIB02,TIB03,TIB04,TIB05,TIB06,TIB07,TIB08,TIB09,TIB10,TIB11,TIB12,TIB13,TIB14,TIB15,TIB16,TIB17,TIB18,TIB19,TIB20 +Cruentus=GEM01,GEM02,GEM03,GEM04,GEM05,GEM06,GEM07,GEM08,GEM09,GEM10,GEM11,GEM12 +Vinifera=TIB2_01,TIB2_02,TIB2_03,TIB2_04,TIB2_05,TIB2_06,TIB2_07,TIB2_08,TIB2_09,TIB2_10,TIB2_11,TIB2_12,TIB2_13,TIB2_14,TIB2_15,TIB2_16,TIB2_17,TIB2_18,TIB2_19,TIB2_20 +Aboreus=TIB3_01,TIB3_02,TIB3_03,TIB3_04,TIB3_05,TIB3_06,TIB3_07,TIB3_08,TIB3_09,TIB3_10,TIB3_11,TIB3_12,TIB3_13,TIB3_14,TIB3_15,TIB3_16,TIB3_17,TIB3_18,TIB3_19,TIB3_20 diff --git a/src/TSMapEditor/Config/UI/EditorControlsPanel.ini b/src/TSMapEditor/Config/UI/EditorControlsPanel.ini index dd72d81f..412c732c 100644 --- a/src/TSMapEditor/Config/UI/EditorControlsPanel.ini +++ b/src/TSMapEditor/Config/UI/EditorControlsPanel.ini @@ -13,7 +13,15 @@ $CC05=chkDrawMapWideOverlay:XNACheckBox $CC06=btnPlaceWaypoint:EditorButton $CC07=btnDeletionMode:EditorButton $CC08=btnFrameworkMode:EditorButton -$Width=max(getRight(chkAutoLAT), getRight(chkOnlyPaintOnClearGround), getRight(chkDrawMapWideOverlay)) + EMPTY_SPACE_SIDES +$CC09=btn2DMode:EditorButton +$CC10=btnRaiseGround:EditorButton +$CC11=btnLowerGround:EditorButton +$CC12=btnRaiseGroundSteep:EditorButton +$CC13=btnLowerGroundSteep:EditorButton +$CC14=btnRaiseCells:EditorButton +$CC15=btnLowerCells:EditorButton +$CC16=btnFlattenGround:EditorButton +$Width=max(getRight(chkAutoLAT), getRight(chkOnlyPaintOnClearGround), getRight(chkDrawMapWideOverlay), getRight(btnLowerCells)) + EMPTY_SPACE_SIDES $Height=getBottom(btnPlaceWaypoint) + EMPTY_SPACE_BOTTOM @@ -28,8 +36,8 @@ $Y=getY(lblBrushSize) + ((getHeight(lblBrushSize) - getHeight(ddBrushSize)) / 2) $Width=60 [LATPanel] -$Width=330 -$Height=(24 * 2) + VERTICAL_SPACING +$Width=400 +$Height=24 $Y=VERTICAL_SPACING / 2 $X=getRight(ddBrushSize) + HORIZONTAL_SPACING DrawBorders=no @@ -51,7 +59,7 @@ Text=Map-Wide Overlay [btnPlaceWaypoint] $X=EMPTY_SPACE_SIDES -$Y=getBottom(ddBrushSize) + EMPTY_SPACE_TOP +$Y=getBottom(ddBrushSize) + (EMPTY_SPACE_TOP * 2) $Width=BUTTON_HEIGHT ExtraTexture=ToolIcons/placewaypoint.png ToolTip=Place Waypoint @@ -66,7 +74,63 @@ ToolTip=Deletion Mode [btnFrameworkMode] $X=getRight(btnDeletionMode) + HORIZONTAL_SPACING $Y=getY(btnDeletionMode) -$Width=getWidth(btnDeletionMode) +$Width=getWidth(btnPlaceWaypoint) ExtraTexture=ToolIcons/frameworkmode.png ToolTip=Toggle Framework Mode (Marble Madness) +[btn2DMode] +$X=getRight(btnFrameworkMode) + HORIZONTAL_SPACING +$Y=getY(btnPlaceWaypoint) +$Width=getWidth(btnPlaceWaypoint) +ExtraTexture=ToolIcons/2dmode.png +ToolTip=Toggle 2D Mode + +[btnRaiseGround] +$X=getRight(btn2DMode) + (HORIZONTAL_SPACING * 2) +$Y=getY(btnPlaceWaypoint) +$Width=getWidth(btnPlaceWaypoint) +ExtraTexture=ToolIcons/raiseground.png +ToolTip=Raise Ground (Non-Steep Ramps / FinalSun Mode) + +[btnLowerGround] +$X=getRight(btnRaiseGround) + HORIZONTAL_SPACING +$Y=getY(btnPlaceWaypoint) +$Width=getWidth(btnPlaceWaypoint) +ExtraTexture=ToolIcons/lowerground.png +ToolTip=Lower Ground (Non-Steep Ramps / FinalSun Mode) + +[btnRaiseGroundSteep] +$X=getRight(btnLowerGround) + HORIZONTAL_SPACING +$Y=getY(btnPlaceWaypoint) +$Width=getWidth(btnPlaceWaypoint) +ExtraTexture=ToolIcons/raiseground_steep.png +ToolTip=Raise Ground (Steep Ramps) + +[btnLowerGroundSteep] +$X=getRight(btnRaiseGroundSteep) + HORIZONTAL_SPACING +$Y=getY(btnPlaceWaypoint) +$Width=getWidth(btnPlaceWaypoint) +ExtraTexture=ToolIcons/lowerground_steep.png +ToolTip=Lower Ground (Steep Ramps) + +[btnRaiseCells] +$X=getRight(btnLowerGroundSteep) + HORIZONTAL_SPACING +$Y=getY(btnPlaceWaypoint) +$Width=getWidth(btnPlaceWaypoint) +ExtraTexture=ToolIcons/raisecells.png +ToolTip=Raise Individual Cells + +[btnLowerCells] +$X=getRight(btnRaiseCells) + HORIZONTAL_SPACING +$Y=getY(btnPlaceWaypoint) +$Width=getWidth(btnPlaceWaypoint) +ExtraTexture=ToolIcons/lowercells.png +ToolTip=Lower Individual Cells + +[btnFlattenGround] +$X=getRight(btnLowerCells) + HORIZONTAL_SPACING +$Y=getY(btnPlaceWaypoint) +$Width=getWidth(btnPlaceWaypoint) +ExtraTexture=ToolIcons/flattenground.png +ToolTip=Flatten Ground + diff --git a/src/TSMapEditor/Config/UI/UIConstants.ini b/src/TSMapEditor/Config/UI/UIConstants.ini index 05b5b8ee..7fbde0b2 100644 --- a/src/TSMapEditor/Config/UI/UIConstants.ini +++ b/src/TSMapEditor/Config/UI/UIConstants.ini @@ -4,4 +4,4 @@ ; This file defines various user-interface related constants used in the editor. [UI] -UITreeViewLineHeight=20 +UITreeViewLineHeight=24 diff --git a/src/TSMapEditor/Config/UI/Windows/CreateNewMapWindow.ini b/src/TSMapEditor/Config/UI/Windows/CreateNewMapWindow.ini index 5530ab31..d870a4bd 100644 --- a/src/TSMapEditor/Config/UI/Windows/CreateNewMapWindow.ini +++ b/src/TSMapEditor/Config/UI/Windows/CreateNewMapWindow.ini @@ -24,7 +24,11 @@ $X=150 $Width=getWidth(CreateNewMapWindow) - getX(ddTheater) - EMPTY_SPACE_SIDES $Y=getBottom(lblHeader) + EMPTY_SPACE_TOP Option0=TEMPERATE -Option1=DESERT +Option1=SNOW +Option2=URBAN +Option3=DESERT +Option4=NEWURBAN +Option5=LUNAR [lblTheater] $X=EMPTY_SPACE_SIDES diff --git a/src/TSMapEditor/Config/UI/Windows/LightingSettingsWindow.ini b/src/TSMapEditor/Config/UI/Windows/LightingSettingsWindow.ini index 2247943b..4efce106 100644 --- a/src/TSMapEditor/Config/UI/Windows/LightingSettingsWindow.ini +++ b/src/TSMapEditor/Config/UI/Windows/LightingSettingsWindow.ini @@ -346,8 +346,8 @@ $Y=getY(lblLightingPreview) - 1 $Width=getWidth(tbAmbientNormal) Option0=No Lighting Option1=Normal -Option2=Ion Storm ; Lighting Storm in YR -;Option3=Dominator YR only +Option2=Lightning Storm +Option3=Dominator [btnApply] Width=100 diff --git a/src/TSMapEditor/Content/celltag.png b/src/TSMapEditor/Content/celltag.png index 09e9fac2..47a1d891 100644 Binary files a/src/TSMapEditor/Content/celltag.png and b/src/TSMapEditor/Content/celltag.png differ diff --git a/src/TSMapEditor/Content/generictile.png b/src/TSMapEditor/Content/generictile.png index 59736b45..8457d8e0 100644 Binary files a/src/TSMapEditor/Content/generictile.png and b/src/TSMapEditor/Content/generictile.png differ diff --git a/src/TSMapEditor/Content/generictilewithborder.png b/src/TSMapEditor/Content/generictilewithborder.png index c4231b57..7d0f0bf8 100644 Binary files a/src/TSMapEditor/Content/generictilewithborder.png and b/src/TSMapEditor/Content/generictilewithborder.png differ diff --git a/src/TSMapEditor/Content/impassablehighlight.png b/src/TSMapEditor/Content/impassablehighlight.png index 9c978aca..86d57f62 100644 Binary files a/src/TSMapEditor/Content/impassablehighlight.png and b/src/TSMapEditor/Content/impassablehighlight.png differ diff --git a/src/TSMapEditor/Content/tileborder.png b/src/TSMapEditor/Content/tileborder.png index 0398db66..90876907 100644 Binary files a/src/TSMapEditor/Content/tileborder.png and b/src/TSMapEditor/Content/tileborder.png differ diff --git a/src/TSMapEditor/TSMapEditor.csproj b/src/TSMapEditor/TSMapEditor.csproj index ba1878eb..b44cf66c 100644 --- a/src/TSMapEditor/TSMapEditor.csproj +++ b/src/TSMapEditor/TSMapEditor.csproj @@ -26,13 +26,9 @@ editoricon.ico - - - - - + @@ -416,6 +412,9 @@ PreserveNewest + + PreserveNewest + @@ -429,7 +428,7 @@ - + PreserveNewest @@ -441,18 +440,6 @@ PreserveNewest - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - diff --git a/src/TSMapEditor/marble.mix b/src/TSMapEditor/marble.mix new file mode 100644 index 00000000..134cc0c6 Binary files /dev/null and b/src/TSMapEditor/marble.mix differ