Page 1 of 1

Programming Technical question

Posted: Mon May 23, 2005 10:48 pm
by Simon
Anyone know how exactly dungeon master draws the dungeon on the screen? I doubt it has an image for every configuration of walls, so I wondered how it works, does it like draw bits of wall in certain places, scaled down, or what? Also how does the lighting work?

Posted: Mon May 23, 2005 10:52 pm
by beowuuf
Look at many posts on the CSBwin forum - they are playing with the way it draws thing to the screen, so you can get an understanding of it...kinda...maybe..sorta....

Basically it draws things ontop of things - and I think it does draw the wall at certain scaled images, and flips the walls for the other side

The lighting is simply palette control - it alters the palette, I believe for each level of lighting, so that all the items are drawn with darker colours

Posted: Mon May 23, 2005 11:12 pm
by Zyx
the plain walls (front view and size view) all have their image at distance 1,2 and 3.
Floor decorations too.

Monsters, items and wall decorations have their image at distance 1. They are scaled at runtime for other distances.

Posted: Mon May 23, 2005 11:14 pm
by Gambit37
Beo is right about the palette, but the walls are not scaled -- there's a bitmap image for each visible part of a wall and the engine simply determines which images should appear on top of each other depending on the dungeon layout. Then it draws them back to front so that each image overlays the previous one and it gives the illusion of depth. Same goes for all the items, monsters etc.

If you ask nicely, maybe one of the programmey type people might write you some pseudo code to show what's going on...

Posted: Tue May 24, 2005 1:17 am
by Paul Stevens
'Twas written last week. Really!

Code: Select all

//****************************************************************
//              Do nothing
//****************************************************************
ui16 NOP[] =
{
  Return
};

//****************************************************************
//              Any Room Type (don't care)
//****************************************************************
ui16 StdDrawF4L1Any[] =
{
  F4L1Contents,  F4L1xy, Literal, 0xfffe , DrawOrder01,  StdDrawRoomObjects,
  Return
};

ui16 StdDrawF4Any[] =
{
  F4Contents,  F4xy, Literal, 0xfffd , DrawOrder01,  StdDrawRoomObjects,
  Return
};

ui16 StdDrawF4R1Any[] =
{
  F4R1Contents,  F4R1xy, Literal, 0xffff , DrawOrder01,  StdDrawRoomObjects,
  Return
};

//****************************************************************
//              roomSTONE
//****************************************************************
ui16 StdDrawF3L2Stone[] = 
{
  StdWallBitmapF3L2,   StdWallRectangleF3L2,   StdBltShape,       
  Return
};

ui16 StdDrawF3R2Stone[] = 
{
  StdWallBitmapF3R2,   StdWallRectangleF3R2,   StdBltShape,       
  Return
};

ui16 StdDrawF3L1Stone[] = 
{
  StdWallBitmapF3L1,   StdWallRectangleF3L1,   StdBltShape,       
  F3L1,  wallDecorationRight,  WallF3L1Right,  StdDrawWallText,
  F3L1,  wallDecorationRight,  WallF3L1Right,  StdDrawWallDecoration,
  F3L1,  wallDecorationFront,  WallF3L1Front,  StdDrawWallText,
  F3L1,  wallDecorationFront,  WallF3L1Front,  StdDrawWallDecoration,
  Alcove, 
      JumpZ, 5,
          F3L1Contents,  F3L1xy, F3L1 , DrawOrder00,  StdDrawRoomObjects,
  Return
};

ui16 StdDrawF3Stone[] = 
{
  StdWallBitmapF3,   StdWallRectangleF3,   StdBltShape,       
  F3,  wallDecorationFront,  WallF3Front,  StdDrawWallText,
  F3,  wallDecorationFront,  WallF3Front,  StdDrawWallDecoration,
  Alcove, 
      JumpZ, 5,
          F3Contents,  F3xy, F3 , DrawOrder00,  StdDrawRoomObjects,
  Return
};

ui16 StdDrawF3R1Stone[] = 
{
  StdWallBitmapF3R1,   StdWallRectangleF3R1,   StdBltShape,       
  F3R1,  wallDecorationLeft,  WallF3R1Left,  StdDrawWallText,
  F3R1,  wallDecorationLeft,  WallF3R1Left,  StdDrawWallDecoration,
  F3R1,  wallDecorationFront,  WallF3R1Front,  StdDrawWallText,
  F3R1,  wallDecorationFront,  WallF3R1Front,  StdDrawWallDecoration,
  Alcove, 
      JumpZ, 5,
          F3R1Contents,  F3R1xy, F3R1 , DrawOrder00,  StdDrawRoomObjects,
  Return
};

ui16 StdDrawF2L1Stone[] = 
{
  StdWallBitmapF2L1,   StdWallRectangleF2L1,   StdBltShape,       
  F2L1,  wallDecorationRight,  WallF2L1Right,  StdDrawWallText,
  F2L1,  wallDecorationRight,  WallF2L1Right,  StdDrawWallDecoration,
  F2L1,  wallDecorationFront,  WallF2L1Front,  StdDrawWallText,
  F2L1,  wallDecorationFront,  WallF2L1Front,  StdDrawWallDecoration,
  Alcove, 
      JumpZ, 5,
          F2L1Contents,  F2L1xy, F2L1 , DrawOrder00,  StdDrawRoomObjects,
  Return
};

ui16 StdDrawF2Stone[] = 
{
  StdWallBitmapF2,   StdWallRectangleF2,   StdBltShape,       
  F2,  wallDecorationFront,  WallF2Front,  StdDrawWallText,
  F2,  wallDecorationFront,  WallF2Front,  StdDrawWallDecoration,
  Alcove, 
      JumpZ, 5,
          F2Contents,  F2xy, F2 , DrawOrder00,  StdDrawRoomObjects,
  Return
};

ui16 StdDrawF2R1Stone[] = 
{
  StdWallBitmapF2R1,   StdWallRectangleF2R1,   StdBltShape,       
  F2R1,  wallDecorationLeft,  WallF2R1Left,  StdDrawWallText,
  F2R1,  wallDecorationLeft,  WallF2R1Left,  StdDrawWallDecoration,
  F2R1,  wallDecorationFront,  WallF2R1Front,  StdDrawWallText,
  F2R1,  wallDecorationFront,  WallF2R1Front,  StdDrawWallDecoration,
  Alcove, 
      JumpZ, 5,
          F2R1Contents,  F2R1xy, F2R1 , DrawOrder00,  StdDrawRoomObjects,
  Return
};


ui16 StdDrawF1L1Stone[] = 
{
  StdWallBitmapF1L1,   StdWallRectangleF1L1,   StdBltShape,       
  F1L1,  wallDecorationRight,  WallF1L1Right,  StdDrawWallText,
  F1L1,  wallDecorationRight,  WallF1L1Right,  StdDrawWallDecoration,
  Return
};

ui16 StdDrawF1Stone[] = 
{
  SeeThroughWalls, JumpZ, 28,
    Literal, 1, StdAllocateDerivedGraphic,
    StdBitmapViewport,                  // source
    Literal, 1,                         // destination = derived graphic 1
    StdSeeThruWallsRect,                // destination rectangle
    StdSeeThruWallsRectUByte4,          // Source X
    StdSeeThruWallsRectUByte6,          // Source Y
    Literal, 112,                       // Source Width
    Literal, 48,                        // destination width
    MinusOne,                           // Transparent color
        StdBltToDerivedGraphic,                         // 
    StdHoleInWallBitmap,               // source
    Literal, 1,                        // destination = derived graphic 1
    StdSeeThruWallsRect,               // destination rectangle
    Zero,                              // Source X
    Zero,                              // Source Y
    Literal, 48,                       // Source Width
    Literal, 48,                       // Destination width
    Literal, 10,                       // Transparent color
        StdBltToDerivedGraphic,
  StdWallBitmapF1,   StdWallRectangleF1,   StdBltShape,       
  F1,  wallDecorationFront,  WallF1Front,  StdDrawWallDecoration,
  F1,  wallDecorationFront,  WallF1Front,  StdDrawWallText,
  Alcove, 
      JumpZ, 5,
          F1Contents,  F1xy, F1 , DrawOrder00,  StdDrawRoomObjects,
  SeeThroughWalls, JumpZ, 16,
    Literal, 1,                           // Source
    StdBitmapViewport,                    // Destination
    StdSeeThruWallsRect2,                 // Destination Rectangle
    Zero,                                 // Source X
    Zero,                                 // Source Y
    Literal, 48,                          // Source Width
    Literal, 112,                         // Destination Width
    Literal, 9,                           // Transparent color
        StdBltFromDerivedGraphic,
    Literal, 1, StdDeleteDerivedGraphic,
  Return
};

ui16 StdDrawF1R1Stone[] = 
{
  StdWallBitmapF1R1,   StdWallRectangleF1R1,   StdBltShape,       
  F1R1,  wallDecorationLeft,  WallF1R1Left,  StdDrawWallText,
  F1R1,  wallDecorationLeft,  WallF1R1Left,  StdDrawWallDecoration,
  Return
};

ui16 StdDrawF0L1Stone[] = 
{
  StdWallBitmapF0L1,   StdWallRectangleF0L1,   StdBltShape,       
  Return
};

ui16 StdDrawF0Stone[] = 
{
  F0, F0xy, StdDrawCeilingPit,
  F0Contents,  F0xy, F0 , DrawOrder21,  StdDrawRoomObjects,
  Return
};

ui16 StdDrawF0R1Stone[] = 
{
  StdWallBitmapF0R1,   StdWallRectangleF0R1,   StdBltShape,       
  Return
};

//****************************************************************
//              roomOPEN
//****************************************************************
ui16 StdDrawF3L1Open[] =
{
  F3L1, FloorDecorationGraphicOrdinalF3L1, StdDrawFloorDecoration,
  F3L1Contents,  F3L1xy, F3L1 , DrawOrder3421,  StdDrawRoomObjects,
  Return
};

ui16 StdDrawF3Open[] =
{
  F3, FloorDecorationGraphicOrdinalF3, StdDrawFloorDecoration,
  F3Contents,  F3xy, F3 , DrawOrder3421,  StdDrawRoomObjects,
  Return
};

ui16 StdDrawF3R1Open[] =
{
  F3R1, FloorDecorationGraphicOrdinalF3R1, StdDrawFloorDecoration,
  F3R1Contents,  F3R1xy, F3R1 , DrawOrder4312,  StdDrawRoomObjects,
  Return
};

ui16 StdDrawF2L1Open[] =
{
  F2L1, FloorDecorationGraphicOrdinalF2L1, StdDrawFloorDecoration,
  F2L1, F2L1xy, StdDrawCeilingPit,
  F2L1Contents,  F2L1xy, F2L1 , DrawOrder3421,  StdDrawRoomObjects,
  Return
};

ui16 StdDrawF2Open[] =
{
  F2, FloorDecorationGraphicOrdinalF2, StdDrawFloorDecoration,
  F2, F2xy, StdDrawCeilingPit,
  F2Contents,  F2xy, F2 , DrawOrder3421,  StdDrawRoomObjects,
  Return
};

ui16 StdDrawF2R1Open[] =
{
  F2R1, FloorDecorationGraphicOrdinalF2R1, StdDrawFloorDecoration,
  F2R1, F2R1xy, StdDrawCeilingPit,
  F2R1Contents,  F2R1xy, F2R1 , DrawOrder4312,  StdDrawRoomObjects,
  Return
};

ui16 StdDrawF1L1Open[] =
{
  F1L1, FloorDecorationGraphicOrdinalF1L1, StdDrawFloorDecoration,
  F1L1, F1L1xy, StdDrawCeilingPit,
  F1L1Contents,  F1L1xy, F1L1 , DrawOrder32,  StdDrawRoomObjects,
  Return
};

ui16 StdDrawF1Open[] =
{
  F1, FloorDecorationGraphicOrdinalF1, StdDrawFloorDecoration,
  F1, F1xy, StdDrawCeilingPit,
  F1Contents,  F1xy, F1 , DrawOrder3421,  StdDrawRoomObjects,
  Return
};

ui16 StdDrawF1R1Open[] = 
{
    
  F1R1, FloorDecorationGraphicOrdinalF1R1, StdDrawFloorDecoration,
  F1R1, F1R1xy, StdDrawCeilingPit,
  F1R1Contents,  F1R1xy, F1R1 , DrawOrder41,  StdDrawRoomObjects,
  Return
};

ui16 StdDrawF0L1Open[] = 
{
  F0L1Contents,  F0L1xy, F0L1 , DrawOrder02,  StdDrawRoomObjects,
  F0L1, F0L1xy, StdDrawCeilingPit,
  Return
};

ui16 StdDrawF0Open[] = 
{
  F0, F0xy, StdDrawCeilingPit,
  F0Contents,  F0xy, F0 , DrawOrder21,  StdDrawRoomObjects,
  Return
};

ui16 StdDrawF0R1Open[] = 
{
  F0R1, F0R1xy, StdDrawCeilingPit,
  F0R1Contents,  F0R1xy, F0R1 , DrawOrder01,  StdDrawRoomObjects,
  Return
};

//****************************************************************
//              roomPIT
//****************************************************************
ui16 StdDrawF3L1Pit[] =
{
  F3L1, GetDecoration0, 
      JumpNZ, 4, 
        Literal, 49, StdFloorPitRectangleF3L1, StdGraphicToViewport, 
  F3L1, FloorDecorationGraphicOrdinalF3L1, StdDrawFloorDecoration,
  F3L1Contents,  F3L1xy, F3L1 , DrawOrder3421,  StdDrawRoomObjects,
  Return
};

ui16 StdDrawF3Pit[] =
{
  F3, GetDecoration0, 
      JumpNZ, 4, 
        Literal, 50, StdFloorPitRectangleF3, StdGraphicToViewport, 
  F3, FloorDecorationGraphicOrdinalF3, StdDrawFloorDecoration,
  F3Contents,  F3xy, F3 , DrawOrder3421,  StdDrawRoomObjects,
  Return
};

ui16 StdDrawF3R1Pit[] =
{
  F3R1, GetDecoration0, 
      JumpNZ, 4, 
        Literal, 49, StdFloorPitRectangleF3R1, StdMirrorGraphicToViewport, 
  F3R1, FloorDecorationGraphicOrdinalF3R1, StdDrawFloorDecoration,
  F3R1Contents,  F3R1xy, F3R1 , DrawOrder4312,  StdDrawRoomObjects,
  Return
};

ui16 StdDrawF2L1Pit[] =
{
  F2L1, GetDecoration0, 
      JumpZ, 4, 
        Literal, 57, 
      Jump, 2, 
        Literal, 51, 
      StdFloorPitRectangleF2L1, 
           StdGraphicToViewport, 
  F2L1, FloorDecorationGraphicOrdinalF2L1, StdDrawFloorDecoration,
  F2L1, F2L1xy, StdDrawCeilingPit,
  F2L1Contents,  F2L1xy, F2L1 , DrawOrder3421,  StdDrawRoomObjects,
  Return
};

ui16 StdDrawF2Pit[] =
{
  F2, GetDecoration0, 
      JumpZ, 4, 
        Literal, 58, 
      Jump, 2, 
        Literal, 52, 
      StdFloorPitRectangleF2, 
           StdGraphicToViewport, 
  F2, FloorDecorationGraphicOrdinalF2, StdDrawFloorDecoration,
  F2, F2xy, StdDrawCeilingPit,
  F2Contents,  F2xy, F2 , DrawOrder3421,  StdDrawRoomObjects,
  Return
};

ui16 StdDrawF2R1Pit[] =
{
  F2R1, GetDecoration0, 
      JumpZ, 4, 
        Literal, 57, 
      Jump, 2, 
        Literal, 51, 
      StdFloorPitRectangleF2R1, 
           StdMirrorGraphicToViewport, 
  F2R1, FloorDecorationGraphicOrdinalF2R1, StdDrawFloorDecoration,
  F2R1, F2R1xy, StdDrawCeilingPit,
  F2R1Contents,  F2R1xy, F2R1 , DrawOrder4312,  StdDrawRoomObjects,
  Return
};

ui16 StdDrawF1L1Pit[] =
{
  F1L1, GetDecoration0, 
      JumpZ, 4, 
        Literal, 59, 
      Jump, 2, 
        Literal, 53, 
      StdFloorPitRectangleF1L1, 
           StdGraphicToViewport, 
  F1L1, FloorDecorationGraphicOrdinalF1L1, StdDrawFloorDecoration,
  F1L1, F1L1xy, StdDrawCeilingPit,
  F1L1Contents,  F1L1xy, F1L1 , DrawOrder32,  StdDrawRoomObjects,
  Return
};

ui16 StdDrawF1Pit[] = 
{
  F1, GetDecoration0, 
      JumpZ, 4, 
        Literal, 60, 
      Jump, 2, 
        Literal, 54, 
      StdFloorPitRectangleF1, 
           StdGraphicToViewport, 
  F1, FloorDecorationGraphicOrdinalF1, StdDrawFloorDecoration,
  F1, F1xy, StdDrawCeilingPit,
  F1Contents,  F1xy, F1 , DrawOrder3421,  StdDrawRoomObjects,
  Return
};

ui16 StdDrawF1R1Pit[] = 
{
  F1R1, GetDecoration0, 
      JumpZ, 4, 
        Literal, 59, 
      Jump, 2, 
        Literal, 53, 
      StdFloorPitRectangleF1R1, 
           StdMirrorGraphicToViewport, 
  F1R1, FloorDecorationGraphicOrdinalF1R1, StdDrawFloorDecoration,
  F1R1, F1R1xy, StdDrawCeilingPit,
  F1R1Contents,  F1R1xy, F1R1 , DrawOrder41,  StdDrawRoomObjects,
  Return
};

ui16 StdDrawF0L1Pit[] = 
{
  F0L1, GetDecoration0, 
      JumpZ, 4, 
        Literal, 61, 
      Jump, 2, 
        Literal, 55, 
      StdFloorPitRectangleF0L1, 
           StdGraphicToViewport, 
  F0L1Contents,  F0L1xy, F0L1 , DrawOrder02,  StdDrawRoomObjects,
  F0L1, F0L1xy, StdDrawCeilingPit,
  Return
};

ui16 StdDrawF0Pit[] = 
{
  F0, GetDecoration0, 
      JumpZ, 4, 
        Literal, 62, 
      Jump, 2, 
        Literal, 56, 
      StdFloorPitRectangleF0, 
           StdGraphicToViewport, 
  F0, F0xy, StdDrawCeilingPit,
  F0Contents,  F0xy, F0 , DrawOrder21,  StdDrawRoomObjects,
  Return
};

ui16 StdDrawF0R1Pit[] = 
{
  F0R1, GetDecoration0, 
      JumpZ, 4, 
        Literal, 61, 
      Jump, 2, 
        Literal, 55, 
      StdFloorPitRectangleF0R1, 
           StdMirrorGraphicToViewport, 
  F0R1, F0R1xy, StdDrawCeilingPit,
  F0R1Contents,  F0R1xy, F0R1 , DrawOrder01,  StdDrawRoomObjects,
  Return
};

//****************************************************************
//              roomTELEPORTER
//****************************************************************
ui16 StdDrawF3L1Teleporter[] =
{
  F3L1, FloorDecorationGraphicOrdinalF3L1, StdDrawFloorDecoration,
  F3L1Contents,  F3L1xy, F3L1 , DrawOrder3421,  StdDrawRoomObjects,
  F3L1, GetDecoration0, JumpZ, 3, StdTeleporterRectangleF3L1, StdWallRectangleF3L1, StdDrawTeleporter,
  Return
};

ui16 StdDrawF3Teleporter[] =
{
  F3, FloorDecorationGraphicOrdinalF3, StdDrawFloorDecoration,
  F3Contents,  F3xy, F3 , DrawOrder3421,  StdDrawRoomObjects,
  F3, GetDecoration0, JumpZ, 3, StdTeleporterRectangleF3, StdWallRectangleF3, StdDrawTeleporter,
  Return
};

ui16 StdDrawF3R1Teleporter[] =
{
  F3R1, FloorDecorationGraphicOrdinalF3R1, StdDrawFloorDecoration,
  F3R1Contents,  F3R1xy, F3R1 , DrawOrder4312,  StdDrawRoomObjects,
  F3R1, GetDecoration0, JumpZ, 3, StdTeleporterRectangleF3R1, StdWallRectangleF3R1, StdDrawTeleporter,
  Return
};

ui16 StdDrawF2L1Teleporter[] =
{
  F2L1, FloorDecorationGraphicOrdinalF2L1, StdDrawFloorDecoration,
  F2L1, F2L1xy, StdDrawCeilingPit,
  F2L1Contents,  F2L1xy, F2L1 , DrawOrder3421,  StdDrawRoomObjects,
  F2L1, GetDecoration0, JumpZ, 3, StdTeleporterRectangleF2L1, StdWallRectangleF2L1, StdDrawTeleporter,
  Return
};

ui16 StdDrawF2Teleporter[] =
{
  F2, FloorDecorationGraphicOrdinalF2, StdDrawFloorDecoration,
  F2, F2xy, StdDrawCeilingPit,
  F2Contents,  F2xy, F2 , DrawOrder3421,  StdDrawRoomObjects,
  F2, GetDecoration0, JumpZ, 3, StdTeleporterRectangleF2, StdWallRectangleF2, StdDrawTeleporter,
  Return
};

ui16 StdDrawF2R1Teleporter[] =
{
  F2R1, FloorDecorationGraphicOrdinalF2R1, StdDrawFloorDecoration,
  F2R1, F2R1xy, StdDrawCeilingPit,
  F2R1Contents,  F2R1xy, F2R1 , DrawOrder4312,  StdDrawRoomObjects,
  F2R1, GetDecoration0, JumpZ, 3, StdTeleporterRectangleF2R1, StdWallRectangleF2R1, StdDrawTeleporter,
  Return
};

ui16 StdDrawF1L1Teleporter[] =
{
  F1L1, FloorDecorationGraphicOrdinalF1L1, StdDrawFloorDecoration,
  F1L1, F1L1xy, StdDrawCeilingPit,
  F1L1Contents,  F1L1xy, F1L1 , DrawOrder32,  StdDrawRoomObjects,
  F1L1, GetDecoration0, JumpZ, 3, StdTeleporterRectangleF1L1, StdWallRectangleF1L1, StdDrawTeleporter,
  Return
};

ui16 StdDrawF1R1Teleporter[] =
{
  F1R1, FloorDecorationGraphicOrdinalF1R1, StdDrawFloorDecoration,
  F1R1, F1R1xy, StdDrawCeilingPit,
  F1R1Contents,  F1R1xy, F1R1 , DrawOrder41,  StdDrawRoomObjects,
  F1R1, GetDecoration0, JumpZ, 3, StdTeleporterRectangleF1R1, StdWallRectangleF1R1, StdDrawTeleporter,
  Return
};

ui16 StdDrawF1Teleporter[] =
{
  F1, FloorDecorationGraphicOrdinalF1, StdDrawFloorDecoration,
  F1, F1xy, StdDrawCeilingPit,
  F1Contents,  F1xy, F1 , DrawOrder3421,  StdDrawRoomObjects,
  F1, GetDecoration0, JumpZ, 3, StdTeleporterRectangleF1, StdWallRectangleF1, StdDrawTeleporter,
  Return
};

ui16 StdDrawF0L1Teleporter[] =
{
  F0L1Contents,  F0L1xy, F0L1 , DrawOrder02,  StdDrawRoomObjects,
  F0L1, F0L1xy, StdDrawCeilingPit,
  F0L1, GetDecoration0, JumpZ, 3, StdTeleporterRectangleF0L1, StdWallRectangleF0L1, StdDrawTeleporter,
  Return
};

ui16 StdDrawF0Teleporter[] =
{
  F0, F0xy, StdDrawCeilingPit,
  F0Contents,  F0xy, F0 , DrawOrder21,  StdDrawRoomObjects,
  F0, GetDecoration0, JumpZ, 3, StdTeleporterRectangleF0, StdWallRectangleF0, StdDrawTeleporter,
  Return
};

ui16 StdDrawF0R1Teleporter[] =
{
  F0R1, F0R1xy, StdDrawCeilingPit,
  F0R1Contents,  F0R1xy, F0R1 , DrawOrder01,  StdDrawRoomObjects,
  F0R1, GetDecoration0, JumpZ, 3, StdTeleporterRectangleF0R1, StdWallRectangleF0R1, StdDrawTeleporter,
  Return
};

//****************************************************************
//              roomSTAIRFACING
//****************************************************************
ui16 StdDrawF3L1StairFacing[] =
{
  F3L1, GetDecoration0, 
    JumpZ, 5,
      StdStairFacingUpGraphicF3L1, StdStairFacingUpRectangleF3L1, StdGraphicToViewport,
    Jump, 3,
      StdStairFacingDownGraphicF3L1, StdStairFacingDownRectangleF3L1, StdGraphicToViewport,
  F3L1, FloorDecorationGraphicOrdinalF3L1, StdDrawFloorDecoration,
  F3L1Contents,  F3L1xy, F3L1, DrawOrder3421,  StdDrawRoomObjects,
  Return
};

ui16 StdDrawF3StairFacing[] =
{
  F3, GetDecoration0, 
    JumpZ, 5,
      StdStairFacingUpGraphicF3, StdStairFacingUpRectangleF3, StdGraphicToViewport,
    Jump, 3,
      StdStairFacingDownGraphicF3, StdStairFacingDownRectangleF3, StdGraphicToViewport,
  F3, FloorDecorationGraphicOrdinalF3, StdDrawFloorDecoration,
  F3Contents,  F3xy, F3, DrawOrder3421,  StdDrawRoomObjects,
  Return
};

ui16 StdDrawF3R1StairFacing[] =
{
  F3R1, GetDecoration0, 
    JumpZ, 5,
      StdStairFacingUpGraphicF3R1, StdStairFacingUpRectangleF3R1, StdMirrorGraphicToViewport,
    Jump, 3,
      StdStairFacingDownGraphicF3R1, StdStairFacingDownRectangleF3R1, StdMirrorGraphicToViewport,
  F3R1, FloorDecorationGraphicOrdinalF3R1, StdDrawFloorDecoration,
  F3R1Contents,  F3R1xy, F3R1, DrawOrder4312,  StdDrawRoomObjects,
  Return
};

ui16 StdDrawF2L1StairFacing[] =
{
  F2L1, GetDecoration0, 
    JumpZ, 5,
      StdStairFacingUpGraphicF2L1, StdStairFacingUpRectangleF2L1, StdGraphicToViewport,
    Jump, 3,
      StdStairFacingDownGraphicF2L1, StdStairFacingDownRectangleF2L1, StdGraphicToViewport,
  F2L1, FloorDecorationGraphicOrdinalF2L1, StdDrawFloorDecoration,
  F2L1, F2L1xy,  StdDrawCeilingPit,
  F2L1Contents,  F2L1xy, F2L1, DrawOrder3421,  StdDrawRoomObjects,
  Return
};

ui16 StdDrawF2StairFacing[] =
{
  F2, GetDecoration0, 
    JumpZ, 5,
      StdStairFacingUpGraphicF2, StdStairFacingUpRectangleF2, StdGraphicToViewport,
    Jump, 3,
      StdStairFacingDownGraphicF2, StdStairFacingDownRectangleF2, StdGraphicToViewport,
  F2, FloorDecorationGraphicOrdinalF2, StdDrawFloorDecoration,
  F2, F2xy,  StdDrawCeilingPit,
  F2Contents,  F2xy, F2, DrawOrder3421,  StdDrawRoomObjects,
  Return
};

ui16 StdDrawF2R1StairFacing[] =
{
  F2R1, GetDecoration0, 
    JumpZ, 5,
      StdStairFacingUpGraphicF2R1, StdStairFacingUpRectangleF2R1, StdMirrorGraphicToViewport,
    Jump, 3,
      StdStairFacingDownGraphicF2R1, StdStairFacingDownRectangleF2R1, StdMirrorGraphicToViewport,
  F2R1, FloorDecorationGraphicOrdinalF2R1, StdDrawFloorDecoration,
  F2R1, F2R1xy,  StdDrawCeilingPit,
  F2R1Contents,  F2R1xy, F2R1, DrawOrder4312,  StdDrawRoomObjects,
  Return
};

ui16 StdDrawF1L1StairFacing[] =
{
  F1L1, GetDecoration0, 
    JumpZ, 5,
      StdStairFacingUpGraphicF1L1, StdStairFacingUpRectangleF1L1, StdGraphicToViewport,
    Jump, 3,
      StdStairFacingDownGraphicF1L1, StdStairFacingDownRectangleF1L1, StdGraphicToViewport,
  F1L1, FloorDecorationGraphicOrdinalF1L1, StdDrawFloorDecoration,
  F1L1, F1L1xy,  StdDrawCeilingPit,
  F1L1Contents,  F1L1xy, F1L1, DrawOrder32,  StdDrawRoomObjects,
  Return
};

ui16 StdDrawF1StairFacing[] =
{
  F1, GetDecoration0, 
    JumpZ, 5,
      StdStairFacingUpGraphicF1, StdStairFacingUpRectangleF1, StdGraphicToViewport,
    Jump, 3,
      StdStairFacingDownGraphicF1, StdStairFacingDownRectangleF1, StdGraphicToViewport,
  F1, FloorDecorationGraphicOrdinalF1, StdDrawFloorDecoration,
  F1, F1xy,  StdDrawCeilingPit,
  F1Contents,  F1xy, F1, DrawOrder3421,  StdDrawRoomObjects,
  Return
};

ui16 StdDrawF1R1StairFacing[] =
{
  F1R1, GetDecoration0, 
    JumpZ, 5,
      StdStairFacingUpGraphicF1R1, StdStairFacingUpRectangleF1R1, StdMirrorGraphicToViewport,
    Jump, 3,
      StdStairFacingDownGraphicF1R1, StdStairFacingDownRectangleF1R1, StdMirrorGraphicToViewport,
  F1R1, FloorDecorationGraphicOrdinalF1R1, StdDrawFloorDecoration,
  F1R1, F1R1xy,  StdDrawCeilingPit,
  F1R1Contents,  F1R1xy, F1R1, DrawOrder41,  StdDrawRoomObjects,
 Return
};

ui16 StdDrawF0L1StairFacing[] =
{
  Return
};

ui16 StdDrawF0StairFacing[] =
{
  F0, GetDecoration0, 
    JumpZ, 8,
      StdStairFacingUpGraphicF0, StdStairFacingUpRectangleF0L, StdGraphicToViewport,
      StdStairFacingUpGraphicF0, StdStairFacingUpRectangleF0R, StdMirrorGraphicToViewport,
    Jump, 6,
      StdStairFacingDownGraphicF0, StdStairFacingDownRectangleF0L, StdGraphicToViewport,
      StdStairFacingDownGraphicF0, StdStairFacingDownRectangleF0R, StdMirrorGraphicToViewport,
  F0, F0xy,  StdDrawCeilingPit,
  F0Contents,  F0xy, F0, DrawOrder21,  StdDrawRoomObjects,
  Return
};

ui16 StdDrawF0R1StairFacing[] =
{
  Return
};

//****************************************************************
//              roomSTAIREDGE
//****************************************************************
ui16 StdDrawF3L1StairEdge[] =
{
  F3L1, FloorDecorationGraphicOrdinalF3L1, StdDrawFloorDecoration,
  F3L1Contents,  F3L1xy, F3L1, DrawOrder321,  StdDrawRoomObjects,      
  Return
};

ui16 StdDrawF3StairEdge[] =
{
  Return
};

ui16 StdDrawF3R1StairEdge[] =
{
  F3R1, FloorDecorationGraphicOrdinalF3R1, StdDrawFloorDecoration,
  F3R1Contents,  F3R1xy, F3R1, DrawOrder412,  StdDrawRoomObjects,      
  Return
};

ui16 StdDrawF2L1StairEdge[] =
{
  StdStairEdgeGraphicF2, StdStairEdgeRectF2L1, StdGraphicToViewport,
  F2L1, FloorDecorationGraphicOrdinalF2L1, StdDrawFloorDecoration,
  F2L1, F2L1xy,  StdDrawCeilingPit,
  F2L1Contents,  F2L1xy, F2L1, DrawOrder00,  StdDrawRoomObjects,      
  Return
};

ui16 StdDrawF2StairEdge[] =
{
  Return
};

ui16 StdDrawF2R1StairEdge[] =
{
  StdStairEdgeGraphicF2, StdStairEdgeRectF2R1, StdMirrorGraphicToViewport,
  F2R1, FloorDecorationGraphicOrdinalF2R1, StdDrawFloorDecoration,
  F2R1, F2R1xy,  StdDrawCeilingPit,
  F2R1Contents,  F2R1xy, F2R1, DrawOrder431,  StdDrawRoomObjects,      
  Return
};

ui16 StdDrawF1L1StairEdge[] =
{
  F1L1, GetDecoration0, 
    JumpZ, 5,
      StdStairEdgeGraphicUpF1, StdStairEdgeUpRectF1L1, StdGraphicToViewport,
    Jump, 3,
      StdStairEdgeGraphicDownF1, StdStairEdgeDownRectF1L1, StdGraphicToViewport,
  F1L1, FloorDecorationGraphicOrdinalF1L1, StdDrawFloorDecoration,
  F1L1, F1L1xy,  StdDrawCeilingPit,
  F1L1Contents,  F1L1xy, F1L1, DrawOrder32,  StdDrawRoomObjects,      
  Return
};

ui16 StdDrawF1StairEdge[] =
{
  Return
};

ui16 StdDrawF1R1StairEdge[] =
{
  F1R1, GetDecoration0, 
    JumpZ, 5,
      StdStairEdgeGraphicUpF1, StdStairEdgeUpRectF1R1, StdMirrorGraphicToViewport,
    Jump, 3,
      StdStairEdgeGraphicDownF1, StdStairEdgeDownRectF1R1, StdMirrorGraphicToViewport,
  F1R1, FloorDecorationGraphicOrdinalF1R1, StdDrawFloorDecoration,
  F1R1, F1R1xy,  StdDrawCeilingPit,
  F1R1Contents,  F1R1xy, F1R1, DrawOrder41,  StdDrawRoomObjects,      
  Return    
};

ui16 StdDrawF0L1StairEdge[] =
{
  StdStairEdgeGraphicF0L1, StdStairEdgeRectF0L1, StdGraphicToViewport,
  Return
};


ui16 StdDrawF0StairEdge[] =
{
  F0, F0xy,  StdDrawCeilingPit,
  F0Contents,  F0xy, F0, DrawOrder21,  StdDrawRoomObjects,      
  Return
};

ui16 StdDrawF0R1StairEdge[] =
{
  StdStairEdgeGraphicF0R1, StdStairEdgeRectF0R1, StdMirrorGraphicToViewport,
  Return
};

//****************************************************************
//              roomDOOREDGE
//****************************************************************
ui16 StdDrawF3L1DoorEdge[] =
{
  F3L1, FloorDecorationGraphicOrdinalF3L1, StdDrawFloorDecoration,
  F3L1Contents,  F3L1xy, F3L1, DrawOrder321,  StdDrawRoomObjects,      
  Return
};

ui16 StdDrawF3DoorEdge[] =
{
  Return
};

ui16 StdDrawF3R1DoorEdge[] =
{
  F3R1, FloorDecorationGraphicOrdinalF3R1, StdDrawFloorDecoration,
  F3R1Contents,  F3R1xy, F3R1, DrawOrder412,  StdDrawRoomObjects,      
  Return
};

ui16 StdDrawF2L1DoorEdge[] =
{
  F2L1, FloorDecorationGraphicOrdinalF2L1, StdDrawFloorDecoration,
  F2L1, F2L1xy,  StdDrawCeilingPit,
  F2L1Contents,  F2L1xy, F2L1, DrawOrder00,  StdDrawRoomObjects,      
  Return
};

ui16 StdDrawF2DoorEdge[] =
{
  Return
};

ui16 StdDrawF2R1DoorEdge[] =
{
  F2R1, FloorDecorationGraphicOrdinalF2R1, StdDrawFloorDecoration,
  F2R1, F2R1xy,  StdDrawCeilingPit,
  F2R1Contents,  F2R1xy, F2R1, DrawOrder431,  StdDrawRoomObjects,      
  Return
};

ui16 StdDrawF1L1DoorEdge[] =
{
  F1L1, FloorDecorationGraphicOrdinalF1L1, StdDrawFloorDecoration,
  F1L1, F1L1xy,  StdDrawCeilingPit,
  F1L1Contents,  F1L1xy, F1L1, DrawOrder32,  StdDrawRoomObjects,      
  Return
};

ui16 StdDrawF1DoorEdge[] =
{
  Return
};

ui16 StdDrawF1R1DoorEdge[] =
{
  F1R1, FloorDecorationGraphicOrdinalF1R1, StdDrawFloorDecoration,
  F1R1, F1R1xy,  StdDrawCeilingPit,
  F1R1Contents,  F1R1xy, F1R1, DrawOrder41,  StdDrawRoomObjects,      
  Return
};

ui16 StdDrawF0L1DoorEdge[] =
{
  F0L1, F0L1xy,  StdDrawCeilingPit,
  F0L1, F0L1xy,  StdDrawCeilingPit,
  Return
};

ui16 StdDrawF0DoorEdge[] =
{
  SeeThroughWalls, 
    JumpZ, 3,
      StdDrawSeeThruDoorEdge, 
    Jump, 3,
      StdDoorEdgeFrameBitmapF0, StdDoorEdgeFrameRectF0, StdBltShapeToViewport,    
  F0, F0xy,  StdDrawCeilingPit,
  F0Contents,  F0xy, F0, DrawOrder21,  StdDrawRoomObjects,      
  Return
};

ui16 StdDrawF0R1DoorEdge[] =
{
  F0R1, F0R1xy,  StdDrawCeilingPit,
  F0R1, F0R1xy,  StdDrawCeilingPit,
  Return
};

//****************************************************************
//              roomDOORFACING
//****************************************************************
ui16 StdDrawF3L1DoorFacing[] =
{
  F3L1, FloorDecorationGraphicOrdinalF3L1, StdDrawFloorDecoration,
  F3L1Contents,  F3L1xy, F3L1, DrawOrder218,  StdDrawRoomObjects,      
  StdDoorFacingFrameLeftBitmapF3L1, StdDoorFacingFrameRectF3L1, StdBltShapeToViewport,
  F3L1DoorRecordIndex, F3L1DoorState, StdDoorGraphicsF3, StdDoorRectsF3L1,
          StdDrawDoor,
  F3L1Contents,  F3L1xy, F3L1, DrawOrder349,  StdDrawRoomObjects,      
  Return
};

ui16 StdDrawF3DoorFacing[] =
{
  F3, FloorDecorationGraphicOrdinalF3, StdDrawFloorDecoration,
  F3Contents,  F3xy, F3, DrawOrder218,  StdDrawRoomObjects,      
  StdDoorFacingFrameLeftBitmapF3, StdDoorFacingFrameLeftRectF3, StdBltShapeToViewport,
  StdDoorFacingFrameLeftBitmapF3, StdDoorFacingFrameRightRectF3, StdMirrorShapeToViewport,
  F3, DoorSwitch,
      JumpZ, 5,
          Literal, 1, Literal, 1, StdDrawDoorSwitch,
  F3DoorRecordIndex, F3DoorState, StdDoorGraphicsF3, StdDoorRectsF3,
          StdDrawDoor,
  F3Contents,  F3xy, F3, DrawOrder349,  StdDrawRoomObjects,      
  Return
};

ui16 StdDrawF3R1DoorFacing[] =
{
  F3R1, FloorDecorationGraphicOrdinalF3R1, StdDrawFloorDecoration,
  F3R1Contents,  F3R1xy, F3R1, DrawOrder128,  StdDrawRoomObjects,      
  StdDoorFacingFrameLeftBitmapF3R1, StdDoorFacingFrameRectF3R1, StdMirrorShapeToViewport,
  F3R1, DoorSwitch,
      JumpZ, 5,
          Literal, 1, Literal, 0, StdDrawDoorSwitch,
  F3R1DoorRecordIndex, F3R1DoorState, StdDoorGraphicsF3, StdDoorRectsF3R1,
          StdDrawDoor,
  F3R1Contents,  F3R1xy, F3R1, DrawOrder439,  StdDrawRoomObjects,      
  Return
};

ui16 StdDrawF2L1DoorFacing[] =
{
  F2L1, FloorDecorationGraphicOrdinalF2L1, StdDrawFloorDecoration,
  F2L1Contents,  F2L1xy, F2L1, DrawOrder218,  StdDrawRoomObjects,      
  StdDoorFacingTopTrackBitmapF2, StdDoorFacingTopTrackRectF2L1, StdBltShapeToViewport,
  F2L1DoorRecordIndex, F2L1DoorState, StdDoorGraphicsF2, StdDoorRectsF2L1,
          StdDrawDoor,
  F2L1, F2L1xy,  StdDrawCeilingPit,
  F2L1Contents,  F2L1xy, F2L1, DrawOrder349,  StdDrawRoomObjects,      
  Return
};

ui16 StdDrawF2DoorFacing[] =
{
  F2, FloorDecorationGraphicOrdinalF2, StdDrawFloorDecoration,
  F2Contents,  F2xy, F2, DrawOrder218,  StdDrawRoomObjects,      
  StdDoorFacingTopTrackBitmapF2, StdDoorFacingTopTrackRectF2, StdBltShapeToViewport,
  StdDoorFacingFrameLeftBitmapF2, StdDoorFacingFrameLeftRectF2, StdBltShapeToViewport,
  StdDoorFacingFrameLeftBitmapF2, StdDoorFacingFrameRightRectF2, StdMirrorShapeToViewport,
  F2, DoorSwitch,
      JumpZ, 5,
          Literal, 1, Literal, 2, StdDrawDoorSwitch,
  F2DoorRecordIndex, F2DoorState, StdDoorGraphicsF2, StdDoorRectsF2,
          StdDrawDoor,
  F2Contents,  F2xy, F2, DrawOrder349,  StdDrawRoomObjects,      
  Return
};

ui16 StdDrawF2R1DoorFacing[] =
{
  F2R1, FloorDecorationGraphicOrdinalF2R1, StdDrawFloorDecoration,
  F2R1Contents,  F2R1xy, F2R1, DrawOrder128,  StdDrawRoomObjects,      
  StdDoorFacingTopTrackBitmapF2, StdDoorFacingTopTrackRectF2R1, StdBltShapeToViewport,
  F2R1DoorRecordIndex, F2R1DoorState, StdDoorGraphicsF2, StdDoorRectsF2R1,
          StdDrawDoor,
  F2R1Contents,  F2R1xy, F2R1, DrawOrder439,  StdDrawRoomObjects,      
  Return
};

ui16 StdDrawF1L1DoorFacing[] =
{
  F1L1, FloorDecorationGraphicOrdinalF1L1, StdDrawFloorDecoration,
  F1L1Contents,  F1L1xy, F1L1, DrawOrder28,  StdDrawRoomObjects,      
  StdDoorFacingTopTrackBitmapF1, StdDoorFacingTopTrackRectF1L1, StdBltShapeToViewport,
  F1L1DoorRecordIndex, F1L1DoorState, StdDoorGraphicsF1, StdDoorRectsF1L1,
          StdDrawDoor,
  F1L1Contents,  F1L1xy, F1L1, DrawOrder39,  StdDrawRoomObjects,      
  Return
};

ui16 StdDrawF1DoorFacing[] =
{
  F1, FloorDecorationGraphicOrdinalF1, StdDrawFloorDecoration,
  F1Contents,  F1xy, F1, DrawOrder218,  StdDrawRoomObjects,      
  StdDoorFacingTopTrackBitmapF1, StdDoorFacingTopTrackRectF1, StdBltShapeToViewport,
  StdDoorFacingFrameLeftBitmapF1, StdDoorFacingFrameLeftRectF1, StdBltShapeToViewport,
  StdDoorFacingFrameRightBitmapF1, StdDoorFacingFrameRightRectF1, StdBltShapeToViewport,
  F1, DoorSwitch,
      JumpZ, 5,
          Literal, 1, Literal, 3, StdDrawDoorSwitch,
  F1DoorRecordIndex, F1DoorState, StdDoorGraphicsF1, StdDoorRectsF1,
          StdDrawDoor,
  F1Contents,  F1xy, F1, DrawOrder349,  StdDrawRoomObjects,      
  Return
};

ui16 StdDrawF1R1DoorFacing[] =
{
  F1R1, FloorDecorationGraphicOrdinalF1R1, StdDrawFloorDecoration,
  F1R1Contents,  F1R1xy, F1R1, DrawOrder18,  StdDrawRoomObjects,      
  StdDoorFacingTopTrackBitmapF1, StdDoorFacingTopTrackRectF1R1, StdBltShapeToViewport,
  F1R1DoorRecordIndex, F1R1DoorState, StdDoorGraphicsF1, StdDoorRectsF1R1,
          StdDrawDoor,
  F1R1Contents,  F1R1xy, F1R1, DrawOrder49,  StdDrawRoomObjects,      
  Return
};

ui16 StdDrawF0L1DoorFacing[] =
{
  Return
};

ui16 StdDrawF0DoorFacing[] =
{
  F0, F0xy,  StdDrawCeilingPit,
  F0Contents,  F0xy, F0, DrawOrder21,  StdDrawRoomObjects,      
  Return
};

ui16 StdDrawF0R1DoorFacing[] =
{
  Return
};

//****************************************************************
//              End of drawing code
//****************************************************************


ui16 *pStdDrawCode[17][8] = 
{
  { //F3
    StdDrawF3Stone,
    StdDrawF3Open,
    StdDrawF3Pit,
    StdDrawF3Teleporter,
    StdDrawF3DoorEdge,
    StdDrawF3DoorFacing,
    StdDrawF3StairEdge,
    StdDrawF3StairFacing
  },


  { //F3L1
    StdDrawF3L1Stone,
    StdDrawF3L1Open,
    StdDrawF3L1Pit,
    StdDrawF3L1Teleporter,
    StdDrawF3L1DoorEdge,
    StdDrawF3L1DoorFacing,
    StdDrawF3L1StairEdge,
    StdDrawF3L1StairFacing
  }, 


  { //F3R1
    StdDrawF3R1Stone,
    StdDrawF3R1Open,
    StdDrawF3R1Pit,
    StdDrawF3R1Teleporter,
    StdDrawF3R1DoorEdge,
    StdDrawF3R1DoorFacing,
    StdDrawF3R1StairEdge,
    StdDrawF3R1StairFacing
  }, 


  { //F2
    StdDrawF2Stone,
    StdDrawF2Open,
    StdDrawF2Pit,
    StdDrawF2Teleporter,
    StdDrawF2DoorEdge,
    StdDrawF2DoorFacing,
    StdDrawF2StairEdge,
    StdDrawF2StairFacing
   },


  { //F2L1
    StdDrawF2L1Stone,
    StdDrawF2L1Open,
    StdDrawF2L1Pit,
    StdDrawF2L1Teleporter,
    StdDrawF2L1DoorEdge,
    StdDrawF2L1DoorFacing,
    StdDrawF2L1StairEdge,
    StdDrawF2L1StairFacing
  }, 

  { //F2R1
    StdDrawF2R1Stone,
    StdDrawF2R1Open,
    StdDrawF2R1Pit,
    StdDrawF2R1Teleporter,
    StdDrawF2R1DoorEdge,
    StdDrawF2R1DoorFacing,
    StdDrawF2R1StairEdge,
    StdDrawF2R1StairFacing
  },


  { //F1
    StdDrawF1Stone,
    StdDrawF1Open,
    StdDrawF1Pit,
    StdDrawF1Teleporter,
    StdDrawF1DoorEdge,
    StdDrawF1DoorFacing,
    StdDrawF1StairEdge,
    StdDrawF1StairFacing
  },



  { //F1L1
   StdDrawF1L1Stone,
   StdDrawF1L1Open,
   StdDrawF1L1Pit,
   StdDrawF1L1Teleporter,
   StdDrawF1L1DoorEdge,
   StdDrawF1L1DoorFacing,
   StdDrawF1L1StairEdge,
   StdDrawF1L1StairFacing
  },


  { //F1R1
   StdDrawF1R1Stone,
   StdDrawF1R1Open,
   StdDrawF1R1Pit,
   StdDrawF1R1Teleporter,
   StdDrawF1R1DoorEdge,
   StdDrawF1R1DoorFacing,
   StdDrawF1R1StairEdge,
   StdDrawF1R1StairFacing
  },


  { //F0
   StdDrawF0Stone,
   StdDrawF0Open,
   StdDrawF0Pit,
   StdDrawF0Teleporter,
   StdDrawF0DoorEdge,
   StdDrawF0DoorFacing,
   StdDrawF0StairEdge,
   StdDrawF0StairFacing},


  { //F0L1
   StdDrawF0L1Stone,
   StdDrawF0L1Open,
   StdDrawF0L1Pit,
   StdDrawF0L1Teleporter,
   StdDrawF0L1DoorEdge,
   StdDrawF0L1DoorFacing,
   StdDrawF0L1StairEdge,
   StdDrawF0L1StairFacing
   },


  { //F0R1
   StdDrawF0R1Stone,
   StdDrawF0R1Open,
   StdDrawF0R1Pit,
   StdDrawF0R1Teleporter,
   StdDrawF0R1DoorEdge,
   StdDrawF0R1DoorFacing,
   StdDrawF0R1StairEdge,
   StdDrawF0R1StairFacing
   },


  { //F3R2
   StdDrawF3R2Stone,
   NOP,
   NOP,
   NOP,
   NOP,
   NOP,
   NOP,
   NOP
  },


  { //F3L2
   StdDrawF3L2Stone,
   NOP,
   NOP,
   NOP,
   NOP,
   NOP,
   NOP,
   NOP
  },


  { //F4
   StdDrawF4Any,
   StdDrawF4Any,   
   StdDrawF4Any,
   StdDrawF4Any,
   StdDrawF4Any,
   StdDrawF4Any,
   StdDrawF4Any,
   StdDrawF4Any
   },


  { //F4L1
   StdDrawF4L1Any,
   StdDrawF4L1Any,
   StdDrawF4L1Any,
   StdDrawF4L1Any,
   StdDrawF4L1Any,
   StdDrawF4L1Any,
   StdDrawF4L1Any,
   StdDrawF4L1Any
  },


  { //F4R1
   StdDrawF4R1Any,
   StdDrawF4R1Any,
   StdDrawF4R1Any,
   StdDrawF4R1Any,
   StdDrawF4R1Any,
   StdDrawF4R1Any,
   StdDrawF4R1Any,
   StdDrawF4R1Any
  },
};

Notice that there are 7 types of cells and 17 cell locations.
Any more questions?

Posted: Tue May 24, 2005 1:37 am
by Simon
Super thanks, it always baffled me. I guessed some of it, but the lighting with the palette I didn't realise. Cheers!

Posted: Tue May 24, 2005 4:47 pm
by PaulH
.

Posted: Tue May 24, 2005 5:00 pm
by PaulH
Oh, as Paul has made the longest post of all time, I wanted the shortest.

Posted: Tue May 24, 2005 8:06 pm
by beowuuf
.

Posted: Tue May 24, 2005 10:16 pm
by Gambit37
Dear lord, the lowest depths have been reached. Anything to increase the post count, eh Mr.Barrie?

Posted: Tue May 24, 2005 10:42 pm
by beowuuf
I felt it was a challenge...besides no one is going to read anything at the bottom here without the aid or Chirpas!

Posted: Tue May 24, 2005 11:18 pm
by PaulH
For something to be short, it still has to be something!

So I win Arnold!

Posted: Tue May 24, 2005 11:42 pm
by beowuuf
Lol, highlight it - it's a full stop aswell. I-ust, you know, smaller font...so it's shorter in pixel length! : )

I changed the colour to make it not read as anything there at all

Posted: Tue May 24, 2005 11:59 pm
by PaulH
Bugger! I wondered how you did it!

Pray nobody tries to beat the longest post record...

Posted: Wed May 25, 2005 9:57 am
by beowuuf
The first person to quote Paul Steven's mail and put a full stop as a reply get banned and hit with a claymore...and I mean the mine...