Programming Technical question
Moderator: Ameena
Forum rules
Please read the Forum rules and policies before posting.
Please read the Forum rules and policies before posting.
Programming Technical question
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?
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
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
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.
Floor decorations too.
Monsters, items and wall decorations have their image at distance 1. They are scaled at runtime for other distances.
Last edited by Zyx on Mon May 23, 2005 11:36 pm, edited 1 time in total.
- Gambit37
- Should eat more pies
- Posts: 13766
- Joined: Wed May 31, 2000 1:57 pm
- Location: Location, Location
- Contact:
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...
If you ask nicely, maybe one of the programmey type people might write you some pseudo code to show what's going on...
- Paul Stevens
- CSBwin Guru
- Posts: 4322
- Joined: Sun Apr 08, 2001 6:00 pm
- Location: Madison, Wisconsin, USA
'Twas written last week. Really!
Notice that there are 7 types of cells and 17 cell locations.
Any more questions?
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
},
};
Any more questions?