Weaver: Difference between revisions
No edit summary |
No edit summary |
||
(One intermediate revision by the same user not shown) | |||
Line 2: | Line 2: | ||
== Function == | == Function == | ||
Not much is known about Weaver outside of interviews with developers<ref>[https://docs.google.com/document/d/1chL_iGfo-h559vnR6ds_ZDnLWicZ48RYxFlf1wmV2aE/edit Interview with Brandon Davis, 3D artist on LEGO Island]</ref> and [[LEGO_Island_Versions#Korean_Release|recovered Weaver input files]]. It can be inferred that Weaver would take *.SS files, descriptors | Not much is known about Weaver outside of interviews with developers<ref>[https://docs.google.com/document/d/1chL_iGfo-h559vnR6ds_ZDnLWicZ48RYxFlf1wmV2aE/edit Interview with Brandon Davis, 3D artist on LEGO Island]</ref> and [[LEGO_Island_Versions#Korean_Release|recovered Weaver input files]]. It can be inferred that Weaver would take *.SS files, descriptors of the files to be interleaved and their parameters in some kind of C-like syntax, and produce "weaved" SI files for optimized streaming from a CD. Weaver, Interleaf files, and SS files all appear to be proprietary Mindscape tools, and while it was initially assumed they were only ever used for LEGO Island, Interleaf files were later discovered on another Mindscape title known as ''{{Wikipedia|Warhammer: Shadow of the Horned Rat}}''. | ||
Weaver could be considered analogous to an archiving program like Tar. It doesn't perform any compression, but does collect several files into one while also structuring them into one contiguous file. | |||
== Example == | == Example == | ||
This file is JUKEBOXW.SS | This file is JUKEBOXW.SS, which was mistakenly shipped with the Korean release of LEGO Island. It compiles to JUKEBOXW.SI, which : | ||
<nowiki>#include "..\Include\JukeBoxWorld_Actions.h" | <nowiki>#include "..\Include\JukeBoxWorld_Actions.h" |
Latest revision as of 01:13, 15 January 2022
The Weaver was an internal tool used by LEGO Island developers to automate the process of creating Interleaf files.
Function
Not much is known about Weaver outside of interviews with developers[1] and recovered Weaver input files. It can be inferred that Weaver would take *.SS files, descriptors of the files to be interleaved and their parameters in some kind of C-like syntax, and produce "weaved" SI files for optimized streaming from a CD. Weaver, Interleaf files, and SS files all appear to be proprietary Mindscape tools, and while it was initially assumed they were only ever used for LEGO Island, Interleaf files were later discovered on another Mindscape title known as Warhammer: Shadow of the Horned Rat.
Weaver could be considered analogous to an archiving program like Tar. It doesn't perform any compression, but does collect several files into one while also structuring them into one contiguous file.
Example
This file is JUKEBOXW.SS, which was mistakenly shipped with the Korean release of LEGO Island. It compiles to JUKEBOXW.SI, which :
#include "..\Include\JukeBoxWorld_Actions.h" defineSettings Configuration { bufferSizeKB = 64; buffersNum = 16; } //================================================================= // Bitmaps defineStill Background_Bitmap { fileName = "Q:\Lego\Media\JukeBox\backgrnd.bmp"; duration = INDEFINITE; location=(0,0,10); extra="World:current"; } defineStill Right_Bitmap { fileName = "q:\Lego\Media\JukeBox\Right.bmp"; duration=INDEFINITE; location=(145,20,8); // transparency=FAST; extra="Visibility:FALSE, World:current"; } defineStill Decal_Bitmap { fileName = "q:\Lego\Media\JukeBox\Decal.bmp"; duration=INDEFINITE; location=(145,20,8); // transparency=FAST; extra="Visibility:FALSE, World:current"; } defineStill Wallis_Bitmap { fileName = "q:\Lego\Media\JukeBox\Wallis.bmp"; duration=INDEFINITE; location=(145,20,8); // transparency=FAST; extra="Visibility:FALSE, World:current"; } defineStill Nelson_Bitmap { fileName = "q:\Lego\Media\JukeBox\Nelson.bmp"; duration=INDEFINITE; location=(145,20,8); // transparency=FAST; extra="Visibility:FALSE, World:current"; } defineStill Torpedos_Bitmap { fileName = "q:\Lego\Media\JukeBox\Torpedos.bmp"; duration=INDEFINITE; location=(145,20,8); // transparency=FAST; extra="Visibility:FALSE, World:current"; } //================================================================= // Controls // // Volume down button // defineStill Voldown_Up_Bitmap { fileName = "Q:\Lego\media\jukebox\voldown.bmp"; duration=INDEFINITE; location=(32,413,9); paletteManagement=NONE; transparency=YES; extra="BMP_ISMAP"; } defineStill Voldown_Down_Bitmap { fileName = "Q:\Lego\media\jukebox\voldownS.bmp"; duration=INDEFINITE; location=(32,413,9); paletteManagement=NONE; transparency=YES; extra="BMP_ISMAP"; } parallelAction Voldown_Ctl { handlerClass="MxControlPresenter"; Voldown_Up_Bitmap; Voldown_Down_Bitmap; loopingMethod=CACHE; extra="Style:Map, World:current"; } // // Volume up button // defineStill Volup_Up_Bitmap { fileName = "Q:\Lego\media\jukebox\volup.bmp"; duration=INDEFINITE; location=(558,417,9); paletteManagement=NONE; transparency=YES; extra="BMP_ISMAP"; } defineStill Volup_Down_Bitmap { fileName = "Q:\Lego\media\jukebox\volupS.bmp"; duration=INDEFINITE; location=(558,417,9); paletteManagement=NONE; transparency=YES; extra="BMP_ISMAP"; } parallelAction Volup_Ctl { handlerClass="MxControlPresenter"; Volup_Up_Bitmap; Volup_Down_Bitmap; loopingMethod=CACHE; extra="Style:Map, World:current"; } // // disk back button // defineStill Dback_Up_Bitmap { fileName = "Q:\Lego\media\jukebox\dback.bmp"; duration=INDEFINITE; location=(159,422,9); paletteManagement=NONE; transparency=YES; extra="BMP_ISMAP"; } defineStill Dback_Down_Bitmap { fileName = "Q:\Lego\media\jukebox\dbackS.bmp"; duration=INDEFINITE; location=(159,422,9); paletteManagement=NONE; transparency=YES; extra="BMP_ISMAP"; } parallelAction Dback_Ctl { handlerClass="MxControlPresenter"; Dback_Up_Bitmap; Dback_Down_Bitmap; loopingMethod=CACHE; extra="Style:Map, World:current"; } // // disk forward button // defineStill Dfwd_Up_Bitmap { fileName = "Q:\Lego\media\jukebox\dfwd.bmp"; duration=INDEFINITE; location=(391,422,9); paletteManagement=NONE; transparency=YES; extra="BMP_ISMAP"; } defineStill Dfwd_Down_Bitmap { fileName = "Q:\Lego\media\jukebox\dfwdS.bmp"; duration=INDEFINITE; location=(391,422,9); paletteManagement=NONE; transparency=YES; extra="BMP_ISMAP"; } parallelAction Dfwd_Ctl { handlerClass="MxControlPresenter"; Dfwd_Up_Bitmap; Dfwd_Down_Bitmap; loopingMethod=CACHE; extra="Style:Map, World:current"; } // // Note button // defineStill Note_Up_Bitmap { fileName = "Q:\Lego\media\jukebox\note.bmp"; duration=INDEFINITE; location=(270,420,9); paletteManagement=NONE; transparency=YES; extra="BMP_ISMAP"; } defineStill Note_Down_Bitmap { fileName = "Q:\Lego\media\jukebox\noteS.bmp"; duration=INDEFINITE; location=(270,420,9); paletteManagement=NONE; transparency=YES; extra="BMP_ISMAP"; } parallelAction Note_Ctl { handlerClass="MxControlPresenter"; Note_Up_Bitmap; Note_Down_Bitmap; loopingMethod=CACHE; extra="Style:Map, World:current"; } //================================================================= // StartUp parallelAction _StartUp Weave { handlerClass = "LegoWorldPresenter"; extra="Object:JukeBox"; Background_Bitmap; Right_Bitmap; Decal_Bitmap; Wallis_Bitmap; Nelson_Bitmap; Torpedos_Bitmap; Voldown_Ctl; Volup_Ctl; Dback_Ctl; Dfwd_Ctl; Note_Ctl; }