Weaver: Difference between revisions

From LEGO Island Wiki
Jump to navigation Jump to search
(Created page with "The Weaver was an internal tool used by LEGO Island developers to automate the process of creating Interleaf files. == Function == Not much is know...")
 
No edit summary
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
The [[Weaver]] was an internal tool used by [[LEGO Island]] developers to automate the process of creating [[Interleaf File|Interleaf files]].
The [[Weaver]] was an internal tool used by [[LEGO Island]] developers to automate the process of creating [[Interleaf files]].


== Function ==
== Function ==
Not much is known about Weaver outside of interviews with developers and [[LEGO_Island_Versions#Korean_Release|recovered Weaver input files]]. It can be inferred that Weaver would take *.SS files, descriptors with C-like syntax of the files to be interleaved and their parameters, and produce SI files. As far as we know, Weaver, Interleaf files, and SS files are all proprietary tools only ever used for LEGO Island. 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 in a very particular way.
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 uncovered from the Korean release of LEGO Island, which compiles to JUKEBOXW.SI:
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"
Line 261: Line 263:
     Note_Ctl;
     Note_Ctl;
}</nowiki>
}</nowiki>
== References ==
<references />

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;
}

References