diff --git a/src/TSMapEditor/Config/Bridges.ini b/src/TSMapEditor/Config/Bridges.ini index b1f5b325..abf2acde 100644 --- a/src/TSMapEditor/Config/Bridges.ini +++ b/src/TSMapEditor/Config/Bridges.ini @@ -6,8 +6,8 @@ [Bridges] 0=Low Bridge -;1=High Bridge -;2=Railroad Bridge +1=High Bridge +2=Railroad Bridge [Low Bridge] Kind=Low diff --git a/src/TSMapEditor/Config/ConnectedOverlays.ini b/src/TSMapEditor/Config/ConnectedOverlays.ini index ba0c9443..07070d6c 100644 --- a/src/TSMapEditor/Config/ConnectedOverlays.ini +++ b/src/TSMapEditor/Config/ConnectedOverlays.ini @@ -4,24 +4,17 @@ ; 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=NAWALL +3=NAWALL_DAMAGED +4=GASAND +5=TRACKS +6=VEINS ; [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,808 +22,273 @@ ; 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=GDI 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 -ConnectionMask=10101010 -Frames=16 -Frame0.Overlay=BRIK -Frame0.FrameIndex=16 -Frame0.ConnectsTo=00000000 -Frame1.Overlay=BRIK -Frame1.FrameIndex=17 -Frame1.ConnectsTo=10000000 -Frame2.Overlay=BRIK -Frame2.FrameIndex=18 -Frame2.ConnectsTo=00100000 -Frame3.Overlay=BRIK -Frame3.FrameIndex=19 -Frame3.ConnectsTo=10100000 -Frame4.Overlay=BRIK -Frame4.FrameIndex=20 -Frame4.ConnectsTo=00001000 -Frame5.Overlay=BRIK -Frame5.FrameIndex=21 -Frame5.ConnectsTo=10001000 -Frame6.Overlay=BRIK -Frame6.FrameIndex=22 -Frame6.ConnectsTo=00101000 -Frame7.Overlay=BRIK -Frame7.FrameIndex=23 -Frame7.ConnectsTo=10101000 -Frame8.Overlay=BRIK -Frame8.FrameIndex=24 -Frame8.ConnectsTo=00000010 -Frame9.Overlay=BRIK -Frame9.FrameIndex=25 -Frame9.ConnectsTo=10000010 -Frame10.Overlay=BRIK -Frame10.FrameIndex=26 -Frame10.ConnectsTo=00100010 -Frame11.Overlay=BRIK -Frame11.FrameIndex=27 -Frame11.ConnectsTo=10100010 -Frame12.Overlay=BRIK -Frame12.FrameIndex=28 -Frame12.ConnectsTo=00001010 -Frame13.Overlay=BRIK -Frame13.FrameIndex=29 -Frame13.ConnectsTo=10001010 -Frame14.Overlay=BRIK -Frame14.FrameIndex=30 -Frame14.ConnectsTo=00101010 -Frame15.Overlay=BRIK -Frame15.FrameIndex=31 -Frame15.ConnectsTo=10101010 - -[SBAG] -UIName=Sandbags -ConnectionMask=10101010 -Frames=16 -Frame0.Overlay=SBAG -Frame0.FrameIndex=0 -Frame0.ConnectsTo=00000000 -Frame1.Overlay=SBAG -Frame1.FrameIndex=1 -Frame1.ConnectsTo=10000000 -Frame2.Overlay=SBAG -Frame2.FrameIndex=2 -Frame2.ConnectsTo=00100000 -Frame3.Overlay=SBAG -Frame3.FrameIndex=3 -Frame3.ConnectsTo=10100000 -Frame4.Overlay=SBAG -Frame4.FrameIndex=4 -Frame4.ConnectsTo=00001000 -Frame5.Overlay=SBAG -Frame5.FrameIndex=5 -Frame5.ConnectsTo=10001000 -Frame6.Overlay=SBAG -Frame6.FrameIndex=6 -Frame6.ConnectsTo=00101000 -Frame7.Overlay=SBAG -Frame7.FrameIndex=7 -Frame7.ConnectsTo=10101000 -Frame8.Overlay=SBAG -Frame8.FrameIndex=8 -Frame8.ConnectsTo=00000010 -Frame9.Overlay=SBAG -Frame9.FrameIndex=9 -Frame9.ConnectsTo=10000010 -Frame10.Overlay=SBAG -Frame10.FrameIndex=10 -Frame10.ConnectsTo=00100010 -Frame11.Overlay=SBAG -Frame11.FrameIndex=11 -Frame11.ConnectsTo=10100010 -Frame12.Overlay=SBAG -Frame12.FrameIndex=12 -Frame12.ConnectsTo=00001010 -Frame13.Overlay=SBAG -Frame13.FrameIndex=13 -Frame13.ConnectsTo=10001010 -Frame14.Overlay=SBAG -Frame14.FrameIndex=14 -Frame14.ConnectsTo=00101010 -Frame15.Overlay=SBAG -Frame15.FrameIndex=15 -Frame15.ConnectsTo=10101010 - -[SBAG_DAMAGED] -UIName=Sandbags (Damaged) -RelatedOverlays=SBAG -ConnectionMask=10101010 -Frames=16 -Frame0.Overlay=SBAG -Frame0.FrameIndex=16 -Frame0.ConnectsTo=00000000 -Frame1.Overlay=SBAG -Frame1.FrameIndex=17 -Frame1.ConnectsTo=10000000 -Frame2.Overlay=SBAG -Frame2.FrameIndex=18 -Frame2.ConnectsTo=00100000 -Frame3.Overlay=SBAG -Frame3.FrameIndex=19 -Frame3.ConnectsTo=10100000 -Frame4.Overlay=SBAG -Frame4.FrameIndex=20 -Frame4.ConnectsTo=00001000 -Frame5.Overlay=SBAG -Frame5.FrameIndex=21 -Frame5.ConnectsTo=10001000 -Frame6.Overlay=SBAG -Frame6.FrameIndex=22 -Frame6.ConnectsTo=00101000 -Frame7.Overlay=SBAG -Frame7.FrameIndex=23 -Frame7.ConnectsTo=10101000 -Frame8.Overlay=SBAG -Frame8.FrameIndex=24 -Frame8.ConnectsTo=00000010 -Frame9.Overlay=SBAG -Frame9.FrameIndex=25 -Frame9.ConnectsTo=10000010 -Frame10.Overlay=SBAG -Frame10.FrameIndex=26 -Frame10.ConnectsTo=00100010 -Frame11.Overlay=SBAG -Frame11.FrameIndex=27 -Frame11.ConnectsTo=10100010 -Frame12.Overlay=SBAG -Frame12.FrameIndex=28 -Frame12.ConnectsTo=00001010 -Frame13.Overlay=SBAG -Frame13.FrameIndex=29 -Frame13.ConnectsTo=10001010 -Frame14.Overlay=SBAG -Frame14.FrameIndex=30 -Frame14.ConnectsTo=00101010 -Frame15.Overlay=SBAG -Frame15.FrameIndex=31 -Frame15.ConnectsTo=10101010 -[BARB] -UIName=Barbed Wire -RelatedOverlays=BARB_DAMAGED +[GAWALL_DAMAGED] +UIName=GDI Wall (Damaged) ConnectionMask=10101010 +RelatedOverlays=GAWALL Frames=16 -Frame0.Overlay=BARB -Frame0.FrameIndex=0 -Frame0.ConnectsTo=00000000 -Frame1.Overlay=BARB -Frame1.FrameIndex=1 -Frame1.ConnectsTo=10000000 -Frame2.Overlay=BARB -Frame2.FrameIndex=2 -Frame2.ConnectsTo=00100000 -Frame3.Overlay=BARB -Frame3.FrameIndex=3 -Frame3.ConnectsTo=10100000 -Frame4.Overlay=BARB -Frame4.FrameIndex=4 -Frame4.ConnectsTo=00001000 -Frame5.Overlay=BARB -Frame5.FrameIndex=5 -Frame5.ConnectsTo=10001000 -Frame6.Overlay=BARB -Frame6.FrameIndex=6 -Frame6.ConnectsTo=00101000 -Frame7.Overlay=BARB -Frame7.FrameIndex=7 -Frame7.ConnectsTo=10101000 -Frame8.Overlay=BARB -Frame8.FrameIndex=8 -Frame8.ConnectsTo=00000010 -Frame9.Overlay=BARB -Frame9.FrameIndex=9 -Frame9.ConnectsTo=10000010 -Frame10.Overlay=BARB -Frame10.FrameIndex=10 -Frame10.ConnectsTo=00100010 -Frame11.Overlay=BARB -Frame11.FrameIndex=11 -Frame11.ConnectsTo=10100010 -Frame12.Overlay=BARB -Frame12.FrameIndex=12 -Frame12.ConnectsTo=00001010 -Frame13.Overlay=BARB -Frame13.FrameIndex=13 -Frame13.ConnectsTo=10001010 -Frame14.Overlay=BARB -Frame14.FrameIndex=14 -Frame14.ConnectsTo=00101010 -Frame15.Overlay=BARB -Frame15.FrameIndex=15 -Frame15.ConnectsTo=10101010 - -[BARB_DAMAGED] -UIName=Barbed Wire (Damaged) -RelatedOverlays=BARB -ConnectionMask=10101010 -Frames=16 -Frame0.Overlay=BARB +Frame0.Overlay=GAWALL Frame0.FrameIndex=16 Frame0.ConnectsTo=00000000 -Frame1.Overlay=BARB +Frame1.Overlay=GAWALL Frame1.FrameIndex=17 Frame1.ConnectsTo=10000000 -Frame2.Overlay=BARB +Frame2.Overlay=GAWALL Frame2.FrameIndex=18 Frame2.ConnectsTo=00100000 -Frame3.Overlay=BARB +Frame3.Overlay=GAWALL Frame3.FrameIndex=19 Frame3.ConnectsTo=10100000 -Frame4.Overlay=BARB +Frame4.Overlay=GAWALL Frame4.FrameIndex=20 Frame4.ConnectsTo=00001000 -Frame5.Overlay=BARB +Frame5.Overlay=GAWALL Frame5.FrameIndex=21 Frame5.ConnectsTo=10001000 -Frame6.Overlay=BARB +Frame6.Overlay=GAWALL Frame6.FrameIndex=22 Frame6.ConnectsTo=00101000 -Frame7.Overlay=BARB +Frame7.Overlay=GAWALL Frame7.FrameIndex=23 Frame7.ConnectsTo=10101000 -Frame8.Overlay=BARB +Frame8.Overlay=GAWALL Frame8.FrameIndex=24 Frame8.ConnectsTo=00000010 -Frame9.Overlay=BARB +Frame9.Overlay=GAWALL Frame9.FrameIndex=25 Frame9.ConnectsTo=10000010 -Frame10.Overlay=BARB +Frame10.Overlay=GAWALL Frame10.FrameIndex=26 Frame10.ConnectsTo=00100010 -Frame11.Overlay=BARB +Frame11.Overlay=GAWALL Frame11.FrameIndex=27 Frame11.ConnectsTo=10100010 -Frame12.Overlay=BARB +Frame12.Overlay=GAWALL Frame12.FrameIndex=28 Frame12.ConnectsTo=00001010 -Frame13.Overlay=BARB +Frame13.Overlay=GAWALL Frame13.FrameIndex=29 Frame13.ConnectsTo=10001010 -Frame14.Overlay=BARB +Frame14.Overlay=GAWALL Frame14.FrameIndex=30 Frame14.ConnectsTo=00101010 -Frame15.Overlay=BARB +Frame15.Overlay=GAWALL Frame15.FrameIndex=31 Frame15.ConnectsTo=10101010 -[FENC] -UIName=Barbed Wire Fence -ConnectionMask=10101010 -Frames=16 -Frame0.Overlay=FENC -Frame0.FrameIndex=0 -Frame0.ConnectsTo=00000000 -Frame1.Overlay=FENC -Frame1.FrameIndex=1 -Frame1.ConnectsTo=10000000 -Frame2.Overlay=FENC -Frame2.FrameIndex=2 -Frame2.ConnectsTo=00100000 -Frame3.Overlay=FENC -Frame3.FrameIndex=3 -Frame3.ConnectsTo=10100000 -Frame4.Overlay=FENC -Frame4.FrameIndex=4 -Frame4.ConnectsTo=00001000 -Frame5.Overlay=FENC -Frame5.FrameIndex=5 -Frame5.ConnectsTo=10001000 -Frame6.Overlay=FENC -Frame6.FrameIndex=6 -Frame6.ConnectsTo=00101000 -Frame7.Overlay=FENC -Frame7.FrameIndex=7 -Frame7.ConnectsTo=10101000 -Frame8.Overlay=FENC -Frame8.FrameIndex=8 -Frame8.ConnectsTo=00000010 -Frame9.Overlay=FENC -Frame9.FrameIndex=9 -Frame9.ConnectsTo=10000010 -Frame10.Overlay=FENC -Frame10.FrameIndex=10 -Frame10.ConnectsTo=00100010 -Frame11.Overlay=FENC -Frame11.FrameIndex=11 -Frame11.ConnectsTo=10100010 -Frame12.Overlay=FENC -Frame12.FrameIndex=12 -Frame12.ConnectsTo=00001010 -Frame13.Overlay=FENC -Frame13.FrameIndex=13 -Frame13.ConnectsTo=10001010 -Frame14.Overlay=FENC -Frame14.FrameIndex=14 -Frame14.ConnectsTo=00101010 -Frame15.Overlay=FENC -Frame15.FrameIndex=15 -Frame15.ConnectsTo=10101010 - -[CYCL] -UIName=Chain Link -RelatedOverlays=CYCL_DAMAGED +[NAWALL] +UIName=Nod Wall ConnectionMask=10101010 +RelatedOverlays=NAWALL_DAMAGED Frames=16 -Frame0.Overlay=CYCL +Frame0.Overlay=NAWALL Frame0.FrameIndex=0 Frame0.ConnectsTo=00000000 -Frame1.Overlay=CYCL +Frame1.Overlay=NAWALL Frame1.FrameIndex=1 Frame1.ConnectsTo=10000000 -Frame2.Overlay=CYCL +Frame2.Overlay=NAWALL Frame2.FrameIndex=2 Frame2.ConnectsTo=00100000 -Frame3.Overlay=CYCL +Frame3.Overlay=NAWALL Frame3.FrameIndex=3 Frame3.ConnectsTo=10100000 -Frame4.Overlay=CYCL +Frame4.Overlay=NAWALL Frame4.FrameIndex=4 Frame4.ConnectsTo=00001000 -Frame5.Overlay=CYCL +Frame5.Overlay=NAWALL Frame5.FrameIndex=5 Frame5.ConnectsTo=10001000 -Frame6.Overlay=CYCL +Frame6.Overlay=NAWALL Frame6.FrameIndex=6 Frame6.ConnectsTo=00101000 -Frame7.Overlay=CYCL +Frame7.Overlay=NAWALL Frame7.FrameIndex=7 Frame7.ConnectsTo=10101000 -Frame8.Overlay=CYCL +Frame8.Overlay=NAWALL Frame8.FrameIndex=8 Frame8.ConnectsTo=00000010 -Frame9.Overlay=CYCL +Frame9.Overlay=NAWALL Frame9.FrameIndex=9 Frame9.ConnectsTo=10000010 -Frame10.Overlay=CYCL +Frame10.Overlay=NAWALL Frame10.FrameIndex=10 Frame10.ConnectsTo=00100010 -Frame11.Overlay=CYCL +Frame11.Overlay=NAWALL Frame11.FrameIndex=11 Frame11.ConnectsTo=10100010 -Frame12.Overlay=CYCL +Frame12.Overlay=NAWALL Frame12.FrameIndex=12 Frame12.ConnectsTo=00001010 -Frame13.Overlay=CYCL +Frame13.Overlay=NAWALL Frame13.FrameIndex=13 Frame13.ConnectsTo=10001010 -Frame14.Overlay=CYCL +Frame14.Overlay=NAWALL Frame14.FrameIndex=14 Frame14.ConnectsTo=00101010 -Frame15.Overlay=CYCL +Frame15.Overlay=NAWALL Frame15.FrameIndex=15 Frame15.ConnectsTo=10101010 -[CYCL_DAMAGED] -UIName=Chain Link (Damaged) -RelatedOverlays=CYCL +[NAWALL_DAMAGED] +UIName=Nod Wall (Damaged) ConnectionMask=10101010 +RelatedOverlays=NAWALL Frames=16 -Frame0.Overlay=CYCL +Frame0.Overlay=NAWALL Frame0.FrameIndex=16 Frame0.ConnectsTo=00000000 -Frame1.Overlay=CYCL +Frame1.Overlay=NAWALL Frame1.FrameIndex=17 Frame1.ConnectsTo=10000000 -Frame2.Overlay=CYCL +Frame2.Overlay=NAWALL Frame2.FrameIndex=18 Frame2.ConnectsTo=00100000 -Frame3.Overlay=CYCL +Frame3.Overlay=NAWALL Frame3.FrameIndex=19 Frame3.ConnectsTo=10100000 -Frame4.Overlay=CYCL +Frame4.Overlay=NAWALL Frame4.FrameIndex=20 Frame4.ConnectsTo=00001000 -Frame5.Overlay=CYCL +Frame5.Overlay=NAWALL Frame5.FrameIndex=21 Frame5.ConnectsTo=10001000 -Frame6.Overlay=CYCL +Frame6.Overlay=NAWALL Frame6.FrameIndex=22 Frame6.ConnectsTo=00101000 -Frame7.Overlay=CYCL +Frame7.Overlay=NAWALL Frame7.FrameIndex=23 Frame7.ConnectsTo=10101000 -Frame8.Overlay=CYCL +Frame8.Overlay=NAWALL Frame8.FrameIndex=24 Frame8.ConnectsTo=00000010 -Frame9.Overlay=CYCL +Frame9.Overlay=NAWALL Frame9.FrameIndex=25 Frame9.ConnectsTo=10000010 -Frame10.Overlay=CYCL +Frame10.Overlay=NAWALL Frame10.FrameIndex=26 Frame10.ConnectsTo=00100010 -Frame11.Overlay=CYCL +Frame11.Overlay=NAWALL Frame11.FrameIndex=27 Frame11.ConnectsTo=10100010 -Frame12.Overlay=CYCL +Frame12.Overlay=NAWALL Frame12.FrameIndex=28 Frame12.ConnectsTo=00001010 -Frame13.Overlay=CYCL +Frame13.Overlay=NAWALL Frame13.FrameIndex=29 Frame13.ConnectsTo=10001010 -Frame14.Overlay=CYCL +Frame14.Overlay=NAWALL Frame14.FrameIndex=30 Frame14.ConnectsTo=00101010 -Frame15.Overlay=CYCL +Frame15.Overlay=NAWALL Frame15.FrameIndex=31 Frame15.ConnectsTo=10101010 -[WOOD] -UIName=Wooden Fence -RelatedOverlays=WOOD_DAMAGED -ConnectionMask=10101010 -Frames=16 -Frame0.Overlay=WOOD -Frame0.FrameIndex=0 -Frame0.ConnectsTo=00000000 -Frame1.Overlay=WOOD -Frame1.FrameIndex=1 -Frame1.ConnectsTo=10000000 -Frame2.Overlay=WOOD -Frame2.FrameIndex=2 -Frame2.ConnectsTo=00100000 -Frame3.Overlay=WOOD -Frame3.FrameIndex=3 -Frame3.ConnectsTo=10100000 -Frame4.Overlay=WOOD -Frame4.FrameIndex=4 -Frame4.ConnectsTo=00001000 -Frame5.Overlay=WOOD -Frame5.FrameIndex=5 -Frame5.ConnectsTo=10001000 -Frame6.Overlay=WOOD -Frame6.FrameIndex=6 -Frame6.ConnectsTo=00101000 -Frame7.Overlay=WOOD -Frame7.FrameIndex=7 -Frame7.ConnectsTo=10101000 -Frame8.Overlay=WOOD -Frame8.FrameIndex=8 -Frame8.ConnectsTo=00000010 -Frame9.Overlay=WOOD -Frame9.FrameIndex=9 -Frame9.ConnectsTo=10000010 -Frame10.Overlay=WOOD -Frame10.FrameIndex=10 -Frame10.ConnectsTo=00100010 -Frame11.Overlay=WOOD -Frame11.FrameIndex=11 -Frame11.ConnectsTo=10100010 -Frame12.Overlay=WOOD -Frame12.FrameIndex=12 -Frame12.ConnectsTo=00001010 -Frame13.Overlay=WOOD -Frame13.FrameIndex=13 -Frame13.ConnectsTo=10001010 -Frame14.Overlay=WOOD -Frame14.FrameIndex=14 -Frame14.ConnectsTo=00101010 -Frame15.Overlay=WOOD -Frame15.FrameIndex=15 -Frame15.ConnectsTo=10101010 - -[WOOD_DAMAGED] -UIName=Wooden Fence (Damaged) -RelatedOverlays=WOOD -ConnectionMask=10101010 -Frames=16 -Frame0.Overlay=WOOD -Frame0.FrameIndex=16 -Frame0.ConnectsTo=00000000 -Frame1.Overlay=WOOD -Frame1.FrameIndex=17 -Frame1.ConnectsTo=10000000 -Frame2.Overlay=WOOD -Frame2.FrameIndex=18 -Frame2.ConnectsTo=00100000 -Frame3.Overlay=WOOD -Frame3.FrameIndex=19 -Frame3.ConnectsTo=10100000 -Frame4.Overlay=WOOD -Frame4.FrameIndex=20 -Frame4.ConnectsTo=00001000 -Frame5.Overlay=WOOD -Frame5.FrameIndex=21 -Frame5.ConnectsTo=10001000 -Frame6.Overlay=WOOD -Frame6.FrameIndex=22 -Frame6.ConnectsTo=00101000 -Frame7.Overlay=WOOD -Frame7.FrameIndex=23 -Frame7.ConnectsTo=10101000 -Frame8.Overlay=WOOD -Frame8.FrameIndex=24 -Frame8.ConnectsTo=00000010 -Frame9.Overlay=WOOD -Frame9.FrameIndex=25 -Frame9.ConnectsTo=10000010 -Frame10.Overlay=WOOD -Frame10.FrameIndex=26 -Frame10.ConnectsTo=00100010 -Frame11.Overlay=WOOD -Frame11.FrameIndex=27 -Frame11.ConnectsTo=10100010 -Frame12.Overlay=WOOD -Frame12.FrameIndex=28 -Frame12.ConnectsTo=00001010 -Frame13.Overlay=WOOD -Frame13.FrameIndex=29 -Frame13.ConnectsTo=10001010 -Frame14.Overlay=WOOD -Frame14.FrameIndex=30 -Frame14.ConnectsTo=00101010 -Frame15.Overlay=WOOD -Frame15.FrameIndex=31 -Frame15.ConnectsTo=10101010 - -[BRIK_NON_ISOMETRIC] -UIName=Concrete Wall (Non-Isometric) -ConnectionMask=10101010 -Frames=16 -Frame0.Overlay=BRIK2 -Frame0.FrameIndex=0 -Frame0.ConnectsTo=00000000 -Frame1.Overlay=BRIK2 -Frame1.FrameIndex=1 -Frame1.ConnectsTo=10000000 -Frame2.Overlay=BRIK2 -Frame2.FrameIndex=2 -Frame2.ConnectsTo=00100000 -Frame3.Overlay=BRIK2 -Frame3.FrameIndex=3 -Frame3.ConnectsTo=10100000 -Frame4.Overlay=BRIK2 -Frame4.FrameIndex=4 -Frame4.ConnectsTo=00001000 -Frame5.Overlay=BRIK2 -Frame5.FrameIndex=5 -Frame5.ConnectsTo=10001000 -Frame6.Overlay=BRIK2 -Frame6.FrameIndex=6 -Frame6.ConnectsTo=00101000 -Frame7.Overlay=BRIK2 -Frame7.FrameIndex=7 -Frame7.ConnectsTo=10101000 -Frame8.Overlay=BRIK2 -Frame8.FrameIndex=8 -Frame8.ConnectsTo=00000010 -Frame9.Overlay=BRIK2 -Frame9.FrameIndex=9 -Frame9.ConnectsTo=10000010 -Frame10.Overlay=BRIK2 -Frame10.FrameIndex=10 -Frame10.ConnectsTo=00100010 -Frame11.Overlay=BRIK2 -Frame11.FrameIndex=11 -Frame11.ConnectsTo=10100010 -Frame12.Overlay=BRIK2 -Frame12.FrameIndex=12 -Frame12.ConnectsTo=00001010 -Frame13.Overlay=BRIK2 -Frame13.FrameIndex=13 -Frame13.ConnectsTo=10001010 -Frame14.Overlay=BRIK2 -Frame14.FrameIndex=14 -Frame14.ConnectsTo=00101010 -Frame15.Overlay=BRIK2 -Frame15.FrameIndex=15 -Frame15.ConnectsTo=10101010 - - -[SBAG_NON_ISOMETRIC] -UIName=Sandbags (Non-Isometric) -ConnectionMask=10101010 -Frames=16 -Frame0.Overlay=SBAG2 -Frame0.FrameIndex=0 -Frame0.ConnectsTo=00000000 -Frame1.Overlay=SBAG2 -Frame1.FrameIndex=1 -Frame1.ConnectsTo=10000000 -Frame2.Overlay=SBAG2 -Frame2.FrameIndex=2 -Frame2.ConnectsTo=00100000 -Frame3.Overlay=SBAG2 -Frame3.FrameIndex=3 -Frame3.ConnectsTo=10100000 -Frame4.Overlay=SBAG2 -Frame4.FrameIndex=4 -Frame4.ConnectsTo=00001000 -Frame5.Overlay=SBAG2 -Frame5.FrameIndex=5 -Frame5.ConnectsTo=10001000 -Frame6.Overlay=SBAG2 -Frame6.FrameIndex=6 -Frame6.ConnectsTo=00101000 -Frame7.Overlay=SBAG2 -Frame7.FrameIndex=7 -Frame7.ConnectsTo=10101000 -Frame8.Overlay=SBAG2 -Frame8.FrameIndex=8 -Frame8.ConnectsTo=00000010 -Frame9.Overlay=SBAG2 -Frame9.FrameIndex=9 -Frame9.ConnectsTo=10000010 -Frame10.Overlay=SBAG2 -Frame10.FrameIndex=10 -Frame10.ConnectsTo=00100010 -Frame11.Overlay=SBAG2 -Frame11.FrameIndex=11 -Frame11.ConnectsTo=10100010 -Frame12.Overlay=SBAG2 -Frame12.FrameIndex=12 -Frame12.ConnectsTo=00001010 -Frame13.Overlay=SBAG2 -Frame13.FrameIndex=13 -Frame13.ConnectsTo=10001010 -Frame14.Overlay=SBAG2 -Frame14.FrameIndex=14 -Frame14.ConnectsTo=00101010 -Frame15.Overlay=SBAG2 -Frame15.FrameIndex=15 -Frame15.ConnectsTo=10101010 - -[CYCL_NON_ISOMETRIC] -UIName=Chain Link (Non-Isometric) -ConnectionMask=10101010 -Frames=16 -Frame0.Overlay=CYCL2 -Frame0.FrameIndex=0 -Frame0.ConnectsTo=00000000 -Frame1.Overlay=CYCL2 -Frame1.FrameIndex=1 -Frame1.ConnectsTo=10000000 -Frame2.Overlay=CYCL2 -Frame2.FrameIndex=2 -Frame2.ConnectsTo=00100000 -Frame3.Overlay=CYCL2 -Frame3.FrameIndex=3 -Frame3.ConnectsTo=10100000 -Frame4.Overlay=CYCL2 -Frame4.FrameIndex=4 -Frame4.ConnectsTo=00001000 -Frame5.Overlay=CYCL2 -Frame5.FrameIndex=5 -Frame5.ConnectsTo=10001000 -Frame6.Overlay=CYCL2 -Frame6.FrameIndex=6 -Frame6.ConnectsTo=00101000 -Frame7.Overlay=CYCL2 -Frame7.FrameIndex=7 -Frame7.ConnectsTo=10101000 -Frame8.Overlay=CYCL2 -Frame8.FrameIndex=8 -Frame8.ConnectsTo=00000010 -Frame9.Overlay=CYCL2 -Frame9.FrameIndex=9 -Frame9.ConnectsTo=10000010 -Frame10.Overlay=CYCL2 -Frame10.FrameIndex=10 -Frame10.ConnectsTo=00100010 -Frame11.Overlay=CYCL2 -Frame11.FrameIndex=11 -Frame11.ConnectsTo=10100010 -Frame12.Overlay=CYCL2 -Frame12.FrameIndex=12 -Frame12.ConnectsTo=00001010 -Frame13.Overlay=CYCL2 -Frame13.FrameIndex=13 -Frame13.ConnectsTo=10001010 -Frame14.Overlay=CYCL2 -Frame14.FrameIndex=14 -Frame14.ConnectsTo=00101010 -Frame15.Overlay=CYCL2 -Frame15.FrameIndex=15 -Frame15.ConnectsTo=10101010 - -[WOOD_NON_ISOMETRIC] -UIName=Wooden Fence (Non-Isometric) +[GASAND] +UIName=Sandbags ConnectionMask=10101010 Frames=16 -Frame0.Overlay=WOOD2 +Frame0.Overlay=GASAND Frame0.FrameIndex=0 Frame0.ConnectsTo=00000000 -Frame1.Overlay=WOOD2 +Frame1.Overlay=GASAND Frame1.FrameIndex=1 Frame1.ConnectsTo=10000000 -Frame2.Overlay=WOOD2 +Frame2.Overlay=GASAND Frame2.FrameIndex=2 Frame2.ConnectsTo=00100000 -Frame3.Overlay=WOOD2 +Frame3.Overlay=GASAND Frame3.FrameIndex=3 Frame3.ConnectsTo=10100000 -Frame4.Overlay=WOOD2 +Frame4.Overlay=GASAND Frame4.FrameIndex=4 Frame4.ConnectsTo=00001000 -Frame5.Overlay=WOOD2 +Frame5.Overlay=GASAND Frame5.FrameIndex=5 Frame5.ConnectsTo=10001000 -Frame6.Overlay=WOOD2 +Frame6.Overlay=GASAND Frame6.FrameIndex=6 Frame6.ConnectsTo=00101000 -Frame7.Overlay=WOOD2 +Frame7.Overlay=GASAND Frame7.FrameIndex=7 Frame7.ConnectsTo=10101000 -Frame8.Overlay=WOOD2 +Frame8.Overlay=GASAND Frame8.FrameIndex=8 Frame8.ConnectsTo=00000010 -Frame9.Overlay=WOOD2 +Frame9.Overlay=GASAND Frame9.FrameIndex=9 Frame9.ConnectsTo=10000010 -Frame10.Overlay=WOOD2 +Frame10.Overlay=GASAND Frame10.FrameIndex=10 Frame10.ConnectsTo=00100010 -Frame11.Overlay=WOOD2 +Frame11.Overlay=GASAND Frame11.FrameIndex=11 Frame11.ConnectsTo=10100010 -Frame12.Overlay=WOOD2 +Frame12.Overlay=GASAND Frame12.FrameIndex=12 Frame12.ConnectsTo=00001010 -Frame13.Overlay=WOOD2 +Frame13.Overlay=GASAND Frame13.FrameIndex=13 Frame13.ConnectsTo=10001010 -Frame14.Overlay=WOOD2 +Frame14.Overlay=GASAND Frame14.FrameIndex=14 Frame14.ConnectsTo=00101010 -Frame15.Overlay=WOOD2 +Frame15.Overlay=GASAND Frame15.FrameIndex=15 Frame15.ConnectsTo=10101010 @@ -898,3 +356,57 @@ Frame18.ConnectsTo=01000010 Frame19.Overlay=TRACKS12 Frame19.FrameIndex=0 Frame19.ConnectsTo=01001000 + +[VEINS] +UIName=Veins +ConnectionMask=10101010 +Frames=16 +Frame0.Overlay=VEINS +Frame0.FrameIndex=0 +Frame0.ConnectsTo=00000000 +Frame1.Overlay=VEINS +Frame1.FrameIndex=3 +Frame1.ConnectsTo=10000000 +Frame2.Overlay=VEINS +Frame2.FrameIndex=6 +Frame2.ConnectsTo=00100000 +Frame3.Overlay=VEINS +Frame3.FrameIndex=9 +Frame3.ConnectsTo=10100000 +Frame4.Overlay=VEINS +Frame4.FrameIndex=13 +Frame4.ConnectsTo=00001000 +Frame5.Overlay=VEINS +Frame5.FrameIndex=15 +Frame5.ConnectsTo=10001000 +Frame6.Overlay=VEINS +Frame6.FrameIndex=18 +Frame6.ConnectsTo=00101000 +Frame7.Overlay=VEINS +Frame7.FrameIndex=23 +Frame7.ConnectsTo=10101000 +Frame8.Overlay=VEINS +Frame8.FrameIndex=24 +Frame8.ConnectsTo=00000010 +Frame9.Overlay=VEINS +Frame9.FrameIndex=27 +Frame9.ConnectsTo=10000010 +Frame10.Overlay=VEINS +Frame10.FrameIndex=30 +Frame10.ConnectsTo=00100010 +Frame11.Overlay=VEINS +Frame11.FrameIndex=34 +Frame11.ConnectsTo=10100010 +Frame12.Overlay=VEINS +Frame12.FrameIndex=36 +Frame12.ConnectsTo=00001010 +Frame13.Overlay=VEINS +Frame13.FrameIndex=41 +Frame13.ConnectsTo=10001010 +Frame14.Overlay=VEINS +Frame14.FrameIndex=43 +Frame14.ConnectsTo=00101010 +Frame15.Overlay=VEINS +Frame15.FrameIndex=49 +Frame15.ConnectsTo=10101010 + diff --git a/src/TSMapEditor/Config/Constants.ini b/src/TSMapEditor/Config/Constants.ini index 563a0d21..7a61186a 100644 --- a/src/TSMapEditor/Config/Constants.ini +++ b/src/TSMapEditor/Config/Constants.ini @@ -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 +TheaterPaletteForTiberium=false ; Should Tiberium be affected by map lighting? -TiberiumAffectedByLighting=true +TiberiumAffectedByLighting=false ; Should Tiberium spawning terrain objects be affected by map lighting? TiberiumTreesAffectedByLighting=false @@ -46,13 +46,13 @@ 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=TiberianSun.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\TiberianSun ; 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. @@ -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=INI/rules.ini +Firestorm=INI/firestrm.ini +Art=INI/art.ini +ArtFS=INI/artfs.ini +AI=INI/ai.ini +AIFS=INI/aifs.ini +Tutorial=INI/tutorial.ini +Theme=INI/theme.ini diff --git a/src/TSMapEditor/Config/EditorRules.ini b/src/TSMapEditor/Config/EditorRules.ini index 4ae7c67b..fd54407f 100644 --- a/src/TSMapEditor/Config/EditorRules.ini +++ b/src/TSMapEditor/Config/EditorRules.ini @@ -4,24 +4,20 @@ ; Rules.ini overrides for the scenario editor. ; We don't want to render these animations in the editor -[OILREFN_S] -RenderInEditor=no +; [OILREFN_S] +; RenderInEditor=no -[RAPOWR_S] -RenderInEditor=no +; [RAPOWR_S] +; RenderInEditor=no -[RAAPWR_S] -RenderInEditor=no +; [RAAPWR_S] +; RenderInEditor=no + +[INBLULMP] +LightGreenTint=0.01 ; WW typoed this in their Rules.ini [ObjectOwnerOverrides] -GDI1=GDI -GDI2=GDI -Nod1=Nod -Nod2=Nod -Allies1=Allies -Allies2=Allies -Soviet1=Soviet -Soviet2=Soviet +NOD=Nod ; no, WW... Nod is not an acronym [ObjectCategoryOverrides] @@ -30,29 +26,14 @@ Soviet2=Soviet [ObjectCategoryPriorities] GDI=0 Nod=1 -Allies=2 -Soviet=3 -Special Units=4 -Civilian Vehicles=5 -Lifeforms=6 -Trains=7 -Misc=9001 +Neutral=2 +Special=3 [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 +2=Neutral +3=Special 50=Spawn1 51=Spawn2 52=Spawn3 @@ -65,34 +46,24 @@ Misc=9001 [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 +2=Neutral +3=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 +2=Neutral +3=Special +4=Fake4 +5=Fake5 +6=Fake6 +7=Fake7 +8=Fake8 +9=Fake9 +10=Fake10 +11=Fake11 +12=Fake12 +13=Fake13 14=Fake14 15=Fake15 16=Fake16 @@ -145,42 +116,12 @@ Color=Gold [Nod] Color=DarkRed -[Allies] -Color=DarkSky - -[Soviet] -Color=DarkRed - [Neutral] Color=LightGrey [Special] Color=White -[GDI1] -Color=Yellow - -[Nod1] -Color=Red - -[GDI2] -Color=Orange - -[Nod2] -Color=Magenta ; "metalic" - -[Allies1] -Color=Blue - -[Allies2] -Color=LightSky - -[Soviet1] -Color=DarkOrange - -[Soviet2] -Color=LightOrange - [Spawn1] Color=Orange @@ -206,3 +147,55 @@ Color=Cyan [Spawn8] Color=DarkGreen + +; Hide certain terrain objects from the snow theater because +; Westwood never gave them graphics in the snow theater, +; hence placing them down causes the game to crash + +[BIGBLUE3] +AllowedTheaters=Temperate + +[FONA01] +AllowedTheaters=Temperate + +[FONA02] +AllowedTheaters=Temperate + +[FONA03] +AllowedTheaters=Temperate + +[FONA04] +AllowedTheaters=Temperate + +[FONA05] +AllowedTheaters=Temperate + +[FONA06] +AllowedTheaters=Temperate + +[FONA07] +AllowedTheaters=Temperate + +[FONA08] +AllowedTheaters=Temperate + +[FONA09] +AllowedTheaters=Temperate + +[FONA10] +AllowedTheaters=Temperate + +[FONA11] +AllowedTheaters=Temperate + +[FONA12] +AllowedTheaters=Temperate + +[FONA13] +AllowedTheaters=Temperate + +[FONA14] +AllowedTheaters=Temperate + +[FONA15] +AllowedTheaters=Temperate diff --git a/src/TSMapEditor/Config/FileManagerConfig.ini b/src/TSMapEditor/Config/FileManagerConfig.ini index 794f6eb4..d503bf44 100644 --- a/src/TSMapEditor/Config/FileManagerConfig.ini +++ b/src/TSMapEditor/Config/FileManagerConfig.ini @@ -12,18 +12,12 @@ ; The editor WILL start even if none of them are found. [PrimaryMIXFiles] 0=Cache.mix -1=Local.mix -2=Conquer.mix +1=Conquer.mix +2=$TSECACHE +3=$EXPAND ; 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 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..6269abb2 100644 --- a/src/TSMapEditor/Config/OverlayCollections.ini +++ b/src/TSMapEditor/Config/OverlayCollections.ini @@ -6,93 +6,33 @@ [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 +OverlayType0=TIB01 +OverlayType1=TIB02 +OverlayType2=TIB03 +OverlayType3=TIB04 +OverlayType4=TIB05 +OverlayType5=TIB06 +OverlayType6=TIB07 +OverlayType7=TIB08 +OverlayType8=TIB09 +OverlayType9=TIB10 +OverlayType10=TIB11 +OverlayType11=TIB12 [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 - -[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 - -[BlueGems] -Name=Blue Gems -OverlayType0=BLUGEM01 -OverlayType1=BLUGEM02 -OverlayType2=BLUGEM03 -OverlayType3=BLUGEM04 - -[MixedGems] -Name=Mixed Gems -OverlayType0=MIXGEM01 -OverlayType1=MIXGEM02 -OverlayType2=MIXGEM03 -OverlayType3=MIXGEM04 - -; 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 +OverlayType0=TIB2_02 +OverlayType1=TIB2_03 +OverlayType2=TIB2_04 +OverlayType3=TIB2_05 +OverlayType4=TIB2_06 +OverlayType5=TIB2_07 +OverlayType6=TIB2_08 +OverlayType7=TIB2_09 +OverlayType8=TIB2_10 +OverlayType9=TIB2_11 +OverlayType10=TIB2_12 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/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/TerrainGeneratorPresets.ini b/src/TSMapEditor/Config/TerrainGeneratorPresets.ini index e8675a1d..485e6558 100644 --- a/src/TSMapEditor/Config/TerrainGeneratorPresets.ini +++ b/src/TSMapEditor/Config/TerrainGeneratorPresets.ini @@ -7,266 +7,226 @@ ; TerrainTypeGroupX=OpenChance,OccupiedChance,TerrainObject1,TerrainObject2,... ; TileGroupX=OpenChance,OccupiedChance,Tile Set Name,Tile1Index,Tile2Index,.... (defaults to all tiles in set if no tile indexes specified) -; ************************* -; 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 - -; ************************* -; 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 +[GreenForestThick] +Name=Green Forest (Thick) +TerrainTypeGroup0=0.25,0.0,TREE01,TREE02,TREE03,TREE04,TREE05,TREE06,TREE07,TREE08,TREE09,TREE10 +TileGroup0=0.6,0.3,Green +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 + +[GreenForestSparse] +Name=Green Forest (Sparse) +TerrainTypeGroup0=0.1,0.0,TREE01,TREE02,TREE03,TREE04,TREE05,TREE06,TREE07,TREE08,TREE09,TREE10 +TileGroup0=0.4,0.2,Green +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 + +[YellowForestThick] +Name=Yellow Forest (Thick) +TerrainTypeGroup0=0.25,0.0,TREE11,TREE12,TREE13,TREE14,TREE15,TREE16,TREE17,TREE18,TREE19,TREE20 +TileGroup0=0.4,0.2,Green +TileGroup1=0.4,0.2,Rough LAT tile +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 + +[YellowForestSparse] +Name=Yellow Forest (Sparse) +TerrainTypeGroup0=0.1,0.0,TREE11,TREE12,TREE13,TREE14,TREE15,TREE16,TREE17,TREE18,TREE19,TREE20 +TileGroup0=0.2,0.1,Green +TileGroup1=0.2,0.1,Rough LAT tile +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 + +[Beach] +Name=Beach +TileGroup0=0.9,0.0,Sand +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 + +[GreenFonaForest] +Name=Green Fona Forest +TerrainTypeGroup0=0.2,0.0,FONA06,FONA07,FONA08,FONA09,FONA10,FONA11,FONA12,FONA13,FONA14,FONA15 +TileGroup0=0.6,0.3,Crystal LAT tile +Theater=Temperate + +[BlueFonaForest] +Name=Blue Fona Forest +TerrainTypeGroup0=0.2,0.0,FONA01,FONA02,FONA03,FONA04,FONA05 +TileGroup0=0.6,0.3,Blue Mold +Theater=Temperate + +[RoughGroundTemperate] +Name=Rough Ground +TileGroup0=0.15,0.0,Rough ground +TileGroup1=0.8,0.0,Rough LAT tile +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 + +[GreenTiberiumFieldTemperate] +Name=Green Tiberium Field +OverlayGroup0=0.12,0,TIB02 +OverlayGroup1=0.12,0,TIB03 +OverlayGroup2=0.12,0,TIB04 +OverlayGroup3=0.12,0,TIB05 +OverlayGroup4=0.12,0,TIB06 +OverlayGroup5=0.12,0,TIB07 +OverlayGroup6=0.12,0,TIB08 +OverlayGroup7=0.12,0,TIB09 +TileGroup0=0.6,0.0,Rough LAT tile +Theater=Temperate + +[BlueTiberiumFieldTemperate] +Name=Blue Tiberium Field +OverlayGroup0=0.12,0,TIB2_02 +OverlayGroup1=0.12,0,TIB2_03 +OverlayGroup2=0.12,0,TIB2_04 +OverlayGroup3=0.12,0,TIB2_05 +OverlayGroup4=0.12,0,TIB2_06 +OverlayGroup5=0.12,0,TIB2_07 +OverlayGroup6=0.12,0,TIB2_08 +OverlayGroup7=0.12,0,TIB2_09 +TileGroup0=0.6,0.0,Rough LAT tile +Theater=Temperate + +[SnowyForestThick] +Name=Snowy Forest (Thick) +TerrainTypeGroup0=0.25,0.0,TREE01,TREE02,TREE03,TREE04,TREE05,TREE06,TREE07,TREE08,TREE09,TREE10,TREE11,TREE12 +TileGroup0=0.6,0.3,Rough lat +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 +TileGroup0=0.4,0.2,Rough lat +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,TREE13,TREE14,TREE15,TREE16,TREE17,TREE18,TREE19,TREE20,TREE21,TREE22,TREE23,TREE24,TREE25 +TileGroup0=0.6,0.3,Rough lat +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,TREE13,TREE14,TREE15,TREE16,TREE17,TREE18,TREE19,TREE20,TREE21,TREE22,TREE23,TREE24,TREE25 +TileGroup0=0.4,0.2,Rough lat +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 +TerrainTypeGroup1=0.125,0.0,TREE13,TREE14,TREE15,TREE16,TREE17,TREE18,TREE19,TREE20,TREE21,TREE22,TREE23,TREE24,TREE25 +TileGroup0=0.6,0.3,Rough lat +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 +TerrainTypeGroup1=0.05,0.0,TREE13,TREE14,TREE15,TREE16,TREE17,TREE18,TREE19,TREE20,TREE21,TREE22,TREE23,TREE24,TREE25 +TileGroup0=0.4,0.2,Rough lat +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,Rock LAT +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,Rough ground +TileGroup1=0.8,0.0,Rough lat +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 + +[GreenTiberiumFieldSnow] +Name=Green Tiberium Field +OverlayGroup0=0.12,0,TIB02 +OverlayGroup1=0.12,0,TIB03 +OverlayGroup2=0.12,0,TIB04 +OverlayGroup3=0.12,0,TIB05 +OverlayGroup4=0.12,0,TIB06 +OverlayGroup5=0.12,0,TIB07 +OverlayGroup6=0.12,0,TIB08 +OverlayGroup7=0.12,0,TIB09 +TileGroup0=0.6,0.0,Rough lat +Theater=Snow + +[BlueTiberiumFieldSnow] +Name=Blue Tiberium Field +OverlayGroup0=0.12,0,TIB2_02 +OverlayGroup1=0.12,0,TIB2_03 +OverlayGroup2=0.12,0,TIB2_04 +OverlayGroup3=0.12,0,TIB2_05 +OverlayGroup4=0.12,0,TIB2_06 +OverlayGroup5=0.12,0,TIB2_07 +OverlayGroup6=0.12,0,TIB2_08 +OverlayGroup7=0.12,0,TIB2_09 +TileGroup0=0.6,0.0,Rough lat +Theater=Snow diff --git a/src/TSMapEditor/Config/TerrainObjectCollections.ini b/src/TSMapEditor/Config/TerrainObjectCollections.ini index 4b9c4d8b..fbf100bd 100644 --- a/src/TSMapEditor/Config/TerrainObjectCollections.ini +++ b/src/TSMapEditor/Config/TerrainObjectCollections.ini @@ -4,85 +4,98 @@ ; Specifies terrain object collections available in the sidebar. [TerrainObjectCollections] -0=TemperateConifers -1=LeafyTrees -2=AutumnTrees -3=AltTerrainConifers -4=AltTerrainLeafyTrees -5=BurnedConifers -6=BurnedLeafyTrees +0=TemperateGreenTrees +1=TemperateYellowTrees +2=TemperateBlueFona +3=TemperateGreenFona +4=SnowNonSpruces +5=SnowSpruces -[TemperateConifers] -Name=Random Temperate Conifer -TerrainObjectType0=T01 -TerrainObjectType1=T02 -TerrainObjectType2=T05 -TerrainObjectType3=T06 -TerrainObjectType4=T07 -TerrainObjectType5=T08 -TerrainObjectType6=T09 -TerrainObjectType7=T16 +[TemperateGreenTrees] +Name=Random Green Tree +TerrainObjectType0=TREE01 +TerrainObjectType1=TREE02 +TerrainObjectType2=TREE03 +TerrainObjectType3=TREE04 +TerrainObjectType4=TREE05 +TerrainObjectType5=TREE06 +TerrainObjectType6=TREE07 +TerrainObjectType7=TREE08 +TerrainObjectType8=TREE09 +TerrainObjectType9=TREE10 +AllowedTheaters=Temperate -[LeafyTrees] -Name=Random Leafy Tree -TerrainObjectType0=T03 -TerrainObjectType1=T10 -TerrainObjectType2=T11 -TerrainObjectType3=T12 -TerrainObjectType4=T13 -TerrainObjectType5=T14 -TerrainObjectType6=T15 -TerrainObjectType7=T17 +[TemperateYellowTrees] +Name=Random Yellow Tree +TerrainObjectType0=TREE11 +TerrainObjectType1=TREE12 +TerrainObjectType2=TREE13 +TerrainObjectType3=TREE14 +TerrainObjectType4=TREE15 +TerrainObjectType5=TREE16 +TerrainObjectType6=TREE17 +TerrainObjectType7=TREE18 +TerrainObjectType8=TREE19 +TerrainObjectType9=TREE20 +TerrainObjectType10=TREE21 +TerrainObjectType11=TREE22 +TerrainObjectType12=TREE23 +TerrainObjectType13=TREE24 +TerrainObjectType14=TREE25 +AllowedTheaters=Temperate -[AutumnTrees] -Name=Random Autumn Tree -TerrainObjectType0=AT03 -TerrainObjectType1=AT10 -TerrainObjectType2=AT11 -TerrainObjectType3=AT12 -TerrainObjectType4=AT13 -TerrainObjectType5=AT14 -TerrainObjectType6=AT15 -TerrainObjectType7=AT17 +[TemperateBlueFona] +Name=Random Blue Fona +TerrainObjectType0=FONA01 +TerrainObjectType1=FONA02 +TerrainObjectType2=FONA03 +TerrainObjectType3=FONA04 +TerrainObjectType4=FONA05 +AllowedTheaters=Temperate -[AltTerrainConifers] -Name=Random Alt. Conifer -TerrainObjectType0=ST01 -TerrainObjectType1=ST02 -TerrainObjectType2=ST05 -TerrainObjectType3=ST06 -TerrainObjectType4=ST07 -TerrainObjectType5=ST08 -TerrainObjectType6=ST16 +[TemperateGreenFona] +Name=Random Green Fona +TerrainObjectType0=FONA06 +TerrainObjectType1=FONA07 +TerrainObjectType2=FONA08 +TerrainObjectType3=FONA09 +TerrainObjectType4=FONA10 +TerrainObjectType5=FONA11 +TerrainObjectType6=FONA12 +TerrainObjectType7=FONA13 +TerrainObjectType8=FONA14 +TerrainObjectType9=FONA15 +AllowedTheaters=Temperate -[AltTerrainLeafyTrees] -Name=Random Alt. Leafy Tree -TerrainObjectType0=ST03 -TerrainObjectType1=ST10 -TerrainObjectType2=ST11 -TerrainObjectType3=ST12 -TerrainObjectType4=ST13 -TerrainObjectType5=ST14 -TerrainObjectType6=ST15 -TerrainObjectType7=ST17 - -[BurnedConifers] -Name=Random Burned Conifer -TerrainObjectType0=BT01 -TerrainObjectType1=BT02 -TerrainObjectType2=BT05 -TerrainObjectType3=BT06 -TerrainObjectType4=BT07 -TerrainObjectType5=BT16 - -[BurnedLeafyTrees] -Name=Random Burned Leafy Tree -TerrainObjectType0=BT03 -TerrainObjectType1=BT10 -TerrainObjectType2=BT11 -TerrainObjectType3=BT12 -TerrainObjectType4=BT13 -TerrainObjectType5=BT14 -TerrainObjectType6=BT15 -TerrainObjectType7=BT17 +[SnowNonSpruces] +Name=Random Snowy Tree +TerrainObjectType0=TREE01 +TerrainObjectType1=TREE02 +TerrainObjectType2=TREE03 +TerrainObjectType3=TREE04 +TerrainObjectType4=TREE05 +TerrainObjectType5=TREE06 +TerrainObjectType6=TREE07 +TerrainObjectType7=TREE08 +TerrainObjectType8=TREE09 +TerrainObjectType9=TREE10 +TerrainObjectType10=TREE11 +TerrainObjectType11=TREE12 +AllowedTheaters=Snow +[SnowSpruces] +Name=Random Spruce +TerrainObjectType0=TREE13 +TerrainObjectType1=TREE14 +TerrainObjectType2=TREE15 +TerrainObjectType3=TREE16 +TerrainObjectType4=TREE17 +TerrainObjectType5=TREE18 +TerrainObjectType6=TREE19 +TerrainObjectType7=TREE20 +TerrainObjectType8=TREE21 +TerrainObjectType9=TREE22 +TerrainObjectType10=TREE23 +TerrainObjectType11=TREE24 +TerrainObjectType12=TREE25 +AllowedTheaters=Snow 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 2a0d288c..de9fa102 100644 --- a/src/TSMapEditor/Config/Theaters.ini +++ b/src/TSMapEditor/Config/Theaters.ini @@ -6,7 +6,7 @@ [Theaters] 0=Temperate -1=Desert +1=Snow [Temperate] ConfigINIPath=INI/Temperat.ini @@ -15,12 +15,12 @@ TerrainPaletteName=isotem.pal UnitPaletteName=unittem.pal ;TiberiumPaletteName= FileExtension=.tem -NewTheaterBuildingLetter=A - -[Desert] -ConfigINIPath=INI/Desert.ini -ContentMIXName=IsoDes.mix -TerrainPaletteName=isodes.pal -UnitPaletteName=unitdes.pal -FileExtension=.des NewTheaterBuildingLetter=T + +[Snow] +ConfigINIPath=INI/Snow.ini +ContentMIXName=IsoSnow.mix +TerrainPaletteName=isosno.pal +UnitPaletteName=unitsno.pal +FileExtension=.sno +NewTheaterBuildingLetter=A diff --git a/src/TSMapEditor/Config/Tiberiums.ini b/src/TSMapEditor/Config/Tiberiums.ini index 83e5e6ee..26f8577b 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=BTIB01,BTIB02,BTIB03,BTIB04,BTIB05,BTIB06,BTIB07,BTIB08,BTIB09,BTIB10,BTIB11,BTIB12 +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..580e4e99 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 @@ -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/Windows/CreateNewMapWindow.ini b/src/TSMapEditor/Config/UI/Windows/CreateNewMapWindow.ini index 5530ab31..0eb515da 100644 --- a/src/TSMapEditor/Config/UI/Windows/CreateNewMapWindow.ini +++ b/src/TSMapEditor/Config/UI/Windows/CreateNewMapWindow.ini @@ -24,7 +24,7 @@ $X=150 $Width=getWidth(CreateNewMapWindow) - getX(ddTheater) - EMPTY_SPACE_SIDES $Y=getBottom(lblHeader) + EMPTY_SPACE_TOP Option0=TEMPERATE -Option1=DESERT +Option1=SNOW [lblTheater] $X=EMPTY_SPACE_SIDES diff --git a/src/TSMapEditor/TSMapEditor.csproj b/src/TSMapEditor/TSMapEditor.csproj index 141734b6..3ce37e01 100644 --- a/src/TSMapEditor/TSMapEditor.csproj +++ b/src/TSMapEditor/TSMapEditor.csproj @@ -26,13 +26,9 @@ editoricon.ico - - - - - + @@ -410,6 +406,9 @@ PreserveNewest + + PreserveNewest + @@ -423,7 +422,7 @@ - + PreserveNewest @@ -435,18 +434,6 @@ PreserveNewest - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - diff --git a/src/TSMapEditor/marble.mix b/src/TSMapEditor/marble.mix new file mode 100644 index 00000000..98360b29 Binary files /dev/null and b/src/TSMapEditor/marble.mix differ