CNC TS Water Animations Mod (CNCTSwaterAnimationsMod) ------------------ Summary: Name: CNCTSwaterAnimationsMod Version: 0.1.0 (created 17 January 2023) Description: Mod to replace all temperate water textures (remove static waves and animate twinkling) Author: Richard Bruce Baxter Credit: Twisted Insurrection mod (temperate water texture, twinkling animations) ------------------ Installation Instructions: disable patch.mix (rename patch.mix to patch.mix.disabled) Part A: Temperate water textures: Copy ecache41.mix to Tiberian Sun Installation Folder (e.g. C:\Westwood\SUN) Part B: Animated twinkling of water textures (incomplete): Copy expand41.mix to Tiberian Sun Installation Folder (e.g. C:\Westwood\SUN) See also withoutCorruptTSmapsWorkaround/expand41.mix ------------------ Description: This mod A) replaces all temperate water textures (remove static waves), and B) adds twinkling animation to the water textures. ------------------ Development: How the mod was created; --- Install utilities: XCC utilities 1.47 (https://cnc-comm.com/command-and-conquer/downloads/modding-tools/XCC-utilities) - XCC_Utilities_1_47.exe CC Mix Dec 17 2014 (https://ppmforums.com/topic-37503/ccmix-a-command-line-mix-creator/) - ccmix_win32 OS SHP Builder 3.38 Beta (https://www.ppmsite.com/shpbuilderinfo) - SHP_Builder.exe Install programs with shared assets: Tiberian Sun /w Firestorm 2.03 (https://cnc-comm.com/tiberian-sun/downloads/the-game/installer v3.0 beta 12 Revision 10) Twisted Insurrection mod (https://www.moddb.com/mods/twisted-insurrection) --- Preparation: Create folders; ecache41-mix expand41-mix --- Water files import; Copy all tiles with water textures from Twisted Insurrection: Open XCC Mixer Open X:\TSmodsAdd\Twisted Insurrection\MIX\cache.mix Middle panel - select folder isotempWater Left panel - select all water files (Ctrl-A) Right-click - Copy water files; ctdam_b.tem wa01x.tem wa02x.tem wa03x.tem wa04x.tem wb01x.tem wb02x.tem wb03x.tem wb04x.tem wc01x.tem wc02x.tem wc03x.tem wc04x.tem wd01x.tem wd02x.tem wd03x.tem wd04x.tem Open XCC Mixer Open X:\TSmodsAdd\Twisted Insurrection\MIX\isotemp.mix Middle panel - select folder isotempWater Left panel - select all water files (Ctrl-A) Right-click - Copy water files; shore01.tem shore02.tem shore03.tem shore04.tem shore05.tem shore06.tem shore07.tem shore08.tem shore09.tem shore10.tem shore11.tem shore12.tem shore13.tem shore14.tem shore15.tem shore16.tem shore17.tem shore18.tem shore19.tem shore20.tem shore21.tem shore22.tem shore23.tem shore24.tem shore25.tem shore26.tem shore27.tem shore28.tem shore29.tem shore30.tem shore31.tem shore32.tem shore33.tem shore34.tem shore35.tem shore36.tem shore37.tem shore38.tem shore39.tem shore40.tem shore41.tem shore42.tem w-a-01.tem w-a-02.tem w-a-03.tem w-a-04.tem w-b-01.tem w-b-02.tem w-b-03.tem w-b-04.tem w-c-01.tem w-c-02.tem w-c-03.tem w-c-04.tem w-d-01.tem w-d-02.tem w-d-03.tem w-d-04.tem water01.tem water02.tem water03.tem water04.tem water05.tem water06.tem water07.tem water08.tem water09.tem water10.tem water11.tem water12.tem water13.tem water14.tem wcave01.tem wcave02.tem wcave03.tem wcave04.tem wcave05.tem wcave06.tem wcave07.tem wcave08.tem wcliff01.tem wcliff02.tem wcliff03.tem wcliff04.tem wcliff05.tem wcliff06.tem wcliff07.tem wcliff08.tem wcliff09.tem wcliff10.tem wcliff11.tem wcliff12.tem wcliff13.tem wcliff14.tem wcliff15.tem wcliff16.tem wcliff17.tem wcliff18.tem wcliff19.tem wcliff20.tem wcliff21.tem wcliff22.tem wcliff23.tem wcliff24.tem wcliff25.tem wcliff26.tem wcliff27.tem wcliff28.tem wslope01.tem wslope02.tem wslope03.tem wslope04.tem Copy all files from isotempWater to ecache41-mix --- Water bridge files creation; water bridge files (with water underneath); ovrps02.tem ovrps02a.tem ovrps05.tem ovrps05a.tem tovrps02.tem tovrps02a.tem tovrps05.tem tovrps05a.tem extract all water bridge files from TS isotem (ovrpsXX/tovrpsXX): Open XCC Mixer Open X:\Westwood\SUN\TIBSUN.mix Middle panel - select folder TS/isotempWaterBridge Left panel - enter isotem.mix - select all water bridge files Right-click - Copy extract all water bridge files from TI isotem (ovrpsXX/tovrpsXX): Open XCC Mixer Open X:\TSmodsAdd\Twisted Insurrection\MIX\isotemp.mix Middle panel - select folder TI/isotempWaterBridge Left panel - enter isotem.mix - select all water bridge files Right-click - Copy water element folder names [waterElementFolderName] prepare editing folders (for water elements); folderNames-vrps02 1+2412 2+4824 3+2436 4+0048 5-2460 6-7260-NOTUSED 7-4872 folderNames-vrps05 1-2412 2-7260-NOTUSED 3-4824 4-2436 5-0048 6-2460 7-4872 copy [waterElementFolderName] to every folder in; TS/isotempWaterBridge XXXvrpsXXX TI/isotempWaterBridge XXXvrpsXXX open XCC TMP editor TS/isotempWaterBridge: extract all XXXvrpsXXX.pcx from XXXvrpsXXX.tem open every water bridge file (XXXvrpsXXX.tem) for every water element in left panel right click - save - image - [waterElementFolderName] - q.pcx TI/isotempWaterBridge: extract all XXXvrpsXXX.pcx from XXXvrpsXXX.tem open every water bridge file (XXXvrpsXXX.tem) for every water element in left panel right click - save - image - [waterElementFolderName] - q.pcx Copy all TS/isotempWaterBridge folders to isotempWater/isotempWaterBridge TS/isotempWaterBridge/XXXvrpsXXX/[waterElementFolderName] to isotempWater/isotempWaterBridge/XXXvrpsXXX/[waterElementFolderName] open XCC TMP editor isotempWaterBridge: replace all water elements using TI/isotempWaterBridge/XXXvrpsXXX/[waterElementFolderName]/q.pcx open every water bridge file (XXXvrpsXXX.tem) for every water elements in left panel right click - load - image - TI/isotempWaterBridge/XXXvrpsXXX/[waterElementFolderName]/q.pcx Copy all files from isotempWaterBridge to isotempWater Copy all files from isotempWaterBridge to ecache41-mix --- Sea algae files creation; (See for reference https://cnc.fandom.com/wiki/Command_%26_Conquer:_Tiberian_Sun_-_Firestorm_manual) extract original water algae files from expand01.mix/isotemp.mix (FS): all slatXX.tem Open XCC Mixer Open X:\Westwood\SUN\expand01.mix Middle panel - select folder isotempWater/isotempWaterAlgae Left panel - enter isotemp.mix - select all slatXX tem files Right-click - Copy assume have a set of updated waterXX.tem files water templates used (1x1 only); slat1->~slat6a water9.tem/pcx ~slat7->slat13 water10.tem/pcx slat13a->slat16a water11.tem/pcx open XCC TMP editor extract all waterXX.pcx from waterXX.tem open waterXX.tem select first element in left panel right click - save - image - water.pcx extract all slatXX.pcx from slatXX.tem open slatXX.tem select first element in left panel right click - save - image - slatXX.pcx backup all slatXX.pcx files before editing them backup all slatXX.tem files before editing them add waterXX.pcx to slatXX.pcx use PSP6+ slatXX: magic wand hue tolerance=32 (multiple selection until all pure water pixels selected) add blue borders to selection waterXX: select all slatXX: edit - paste - paste into selection save as slatXX.pcx open XCC TMP editor edit all slatXX.tem with updated slatXX.pcx texture select first element in left panel right click - load - image - slatXX.pcx Copy all files from isotempWater/isotempWaterAlgae to isotempWater Copy all files from isotempWater/isotempWaterAlgae to ecache41-mix --- Water twinkling animations; Copy all water animations from Twisted Insurrection Open XCC Mixer Open X:\TSmodsAdd\Twisted Insurrection\MIX\cache.mix Middle panel - select folder isotempWater-twinkling Left panel - select all water animation files Right-click - Copy water animation files; wapx01a.shp wapx02a.shp wapx03a.shp wapx04a.shp wapx05a.shp wapx06a.shp wapxl01a.tem extract rules.ini/art.ini/temperat.ini Open XCC Mixer Open X:\Westwood\SUN\expand01.mix Middle panel - select folder iniWater-twinkling Left panel - select ini files Right-click - Copy extract snow.ini Open XCC Mixer Open X:\Westwood\SUN\TIBSUN.mix Middle panel - select folder iniWater-twinkling Left panel - enter local.mix - select ini files Right-click - Copy backup all ini files before editing them edit ini files rules.ini - append to [Animations]: 710=WAPXL01A 711=WAPX01A 712=WAPX02A 713=WAPX03A 714=WAPX04A 715=WAPX05A 716=WAPX06A art.ini: - add; ; Water twinkling [WAPX01A] Theater=yes LoopStart=0 LoopEnd=15 LoopCount=-1 Rate=120 Flat=yes UseNormalLight=no ShouldUseCellDrawer=true DetailLevel=2 [WAPX02A] Theater=yes LoopStart=0 LoopEnd=15 LoopCount=-1 Rate=120 Flat=yes UseNormalLight=no ShouldUseCellDrawer=true DetailLevel=2 [WAPX03A] Theater=yes LoopStart=0 LoopEnd=15 LoopCount=-1 Rate=120 Flat=yes UseNormalLight=no ShouldUseCellDrawer=true DetailLevel=2 [WAPX04A] Theater=yes LoopStart=0 LoopEnd=15 LoopCount=-1 Rate=120 Flat=yes UseNormalLight=no ShouldUseCellDrawer=true DetailLevel=2 [WAPX05A] Theater=yes LoopStart=0 LoopEnd=15 LoopCount=-1 Rate=120 Flat=yes UseNormalLight=no ShouldUseCellDrawer=true DetailLevel=2 [WAPX06A] Theater=yes LoopStart=0 LoopEnd=15 LoopCount=-1 Rate=120 Flat=yes UseNormalLight=no ShouldUseCellDrawer=true DetailLevel=2 ; Water twinkling (large tile) [WAPXL01A] Theater=yes LoopStart=0 LoopEnd=15 LoopCount=-1 Rate=120 Flat=yes UseNormalLight=no ShouldUseCellDrawer=true DetailLevel=2 temperat.ini: ; ; Just icy water. ; [TileSet0021] SetName = Water FileName = Water TilesInSet = 14 LowRadarColor = 10,10,30 HighRadarColor = 10,10,50 MarbleMadness=69 AllowBurrowing=false RequiredForRMG = true [Water] Tile01Anim=WAPX01A Tile01XOffset=0 Tile01YOffset=0 Tile01AttachesTo=0 Tile01ZAdjust=0 Tile02Anim=WAPX02A Tile02XOffset=0 Tile02YOffset=0 Tile02AttachesTo=0 Tile02ZAdjust=0 Tile03Anim=WAPX03A Tile03XOffset=0 Tile03YOffset=0 Tile03AttachesTo=0 Tile03ZAdjust=0 Tile04Anim=WAPX04A Tile04XOffset=0 Tile04YOffset=0 Tile04AttachesTo=0 Tile04ZAdjust=0 Tile05Anim=WAPX05A Tile05XOffset=0 Tile05YOffset=0 Tile05AttachesTo=0 Tile05ZAdjust=0 Tile06Anim=WAPX06A Tile06XOffset=0 Tile06YOffset=0 Tile06AttachesTo=0 Tile06ZAdjust=0 snow.ini: [not currently used] ; Just icy water. ; [TileSet0021] SetName = Water FileName = Water TilesInSet = 14 LowRadarColor=10,10,80 HighRadarColor=15,15,110 MarbleMadness=60 AllowBurrowing=false RequiredForRMG = true [Water] Tile01Anim=WAPX01A Tile01XOffset=0 Tile01YOffset=0 Tile01AttachesTo=0 Tile01ZAdjust=0 Tile02Anim=WAPX02A Tile02XOffset=0 Tile02YOffset=0 Tile02AttachesTo=0 Tile02ZAdjust=0 Tile03Anim=WAPX03A Tile03XOffset=0 Tile03YOffset=0 Tile03AttachesTo=0 Tile03ZAdjust=0 Tile04Anim=WAPX04A Tile04XOffset=0 Tile04YOffset=0 Tile04AttachesTo=0 Tile04ZAdjust=0 Tile05Anim=WAPX05A Tile05XOffset=0 Tile05YOffset=0 Tile05AttachesTo=0 Tile05ZAdjust=0 Tile06Anim=WAPX06A Tile06XOffset=0 Tile06YOffset=0 Tile06AttachesTo=0 Tile06ZAdjust=0 Copy all files from isotempWater-twinkling to ecache41-mix Copy all files from iniWater-twinkling to expand41-mix --- Mod compilation: X: cd X:\TSmodsAdd\ccmix_win32 ccmix.exe --create --dir X:\TSmodsAdd\waterAnimationsMod\expand41-mix --game ts --mix X:\TSmodsAdd\waterAnimationsMod\expand41.mix ccmix.exe --create --dir X:\TSmodsAdd\waterAnimationsMod\ecache41-mix --game ts --mix X:\TSmodsAdd\waterAnimationsMod\ecache41.mix ------------------ Future Development: - There is a problem with how some TS/FS temperate maps are constructed (they overuse water2.tem) - There is a problem with how all(?) TS/FS snow maps are constructued (they only use water1.sno) This can be seen by opening temperate TS/FS maps in Final TI pressing Ctrl-F (framework mode) note the numbers of the water tiles eg in X:\Westwood\SUN\Maps\Firestorm\duel.map almost all 2x2 water cells use water2.tem If corrupt they mainly use water2.tem/water1.sno tiles All temperate maps have been extracted and reviewed; X:\TSmodsAdd\test MAPS01.MIX -> maps01 MAPS02.MIX -> maps02 MAPS03.MIX -> maps03 some TS multi player maps are corrupt; access.map ok arivruns.map ok caseycan.map ok cliffsin.map bad [overuse of 2] desolar.map unknown [snow] forestfr.map ok g_canyon.map semibad [some overuse of 2] g_knoll.map ok hextreme.map unknown [snow] icecliff.map unknown [snow] mutants.map ok pentagrm.map ok pitplats.map ok pockets.map unknown [snow] seismic.map ok sinkhole.map ok springs.map unknown [snow] storms.map ok strmyvly.map unknown [snow] sup_bh_r.map semibad [there are some lines of 2s] tactical.map ok terrace.map ok tread_l.map unknown [snow] tunnel.map unknown [snow] t_garden.map ok some FS multi player maps are corrupt; 1ice6.map unknown [snow] 1lworld7.map ok 2temp7.map ok 3tweak10.map ok cityscap.map ok drawbrid.map ok duel.map bad [overuse of 2] float.map ok icemust.map unknown [snow] narrow.map bad [overuse of 2] permfrst.map unknown [snow] rivrrad4.map ok tiers.map ok xcapades.map unknown [snow] some TS single player maps are corrupt; gdi01a.map ok gdi02a.map ok gdi03a.map ok gdi03b.map ok gdi04a.map ok [there is a small section with all water1s] gdi05a.map ok gdi06a.map ok gdi07a.map unknown [snow] gdi08a.map unknown [snow] gdi09a.map bad [right sections overuse water2] gdi09b.map ok gdi09c.map ok gdi09d.map ok gdi10a.map ok gdi10b.map semiok [there is some overuse of water2 bottom left] gdi11a.map ok gdi12a.map ok nod01a.map ok nod02a.map ok nod03a.map ok nod04a.map ok nod04b.map ok nod05a.map ok nod06a.map ok nod07a.map ok nod07b map bad [area with line of water6s] nod08a.map unknown [snow] nod09a.map bad [area with multiple water6s, area with multiple water2s] nod10a.map unknown [snow] nod11a.map unknown [snow] nod12a.map unknown [snow] nod12b.map unknown [snow] some FS single player maps are corrupt; fsgdi01.map bad fsgdi02.map ok fsgdi03.map unknown [snow] fsgdi04.map ok fsgdi05.map ok fsgdi06.map semibad fsgdi07.map unknown [snow] fsgdi08.map ok fsgdi09.map ok fsnod01.map ok fsnod02.map ok fsnod03.map ok fsnod04.map ok fsnod05.map bad fsnod06.map unknown [snow] fsnod07.map ok fsnod08.map ok fsnod09.map ok Cannot easily check the quality of snow maps since; Final TI does not support snow maps FinalSun does not support a Framework mode (Ctrl-F) that shows tile number WORKAROUND: temporarily disable water2 [Water]/[MM Water] animations in temperat.ini temporarily disable snow.ini mod (do not include snow.ini file in expand41.mix) FUTURE; fix all bad TS/FS maps (that overuse water2.tem/water1.sno tile) in future waterAnimationsMod release FUTURE: create all wapxXXa.sno files (using isosno instead of isotem palette)