DEF Language

From EDukeWiki
Revision as of 09:38, 18 February 2007 by Parkar (talk | contribs) (→‎tint)
Jump to navigation Jump to search

Preferred Commands

include

include filename

#include filename

Processes the script commands in filename at the point of the include call.

define

define label integer-value

#define label integer-value

Declares label to represent the numeric value integer-value. integer-value can be a label, in which case the value of the label given is used.

NOTE: You may find it convenient to include DEFS.CON (for JFDuke3D) or NAMES.H to predefine many of the tile names in the art file.

texture

texture tilenum { ... }

Defines a Hightile texture to replace an ART-file tile. tilenum may be a number, or a defined label.

The brace-enclosed block may contain these instructions:

pal

pal palnum { ... }

Replaces the palette palnum. If a palette has no pal definition palette 0 definition will be used. Tint will not be used on palettes defined with this instruction.

The brace-enclosed block may contain these instructions:

file

file filename

name filename

Defines which texture file to use. File may be any PNG, JPG, TGA, BMP, GIF or PCX file. This instruction must be supplied.

alphacut

alphacut cutoff-value

Sets the level of transparency at which a pixel in the texture is considered opaque. Pixels with more transparency than the cut-off are not drawn to the screen when rendered. The default setting is 0.32, which is just below the 33% transparency level of Build. If your texture has areas that are more transparent than the default, you can lower the cut-off level to preserve that detail.

nocompress

nocompress

Prevents the texture from being compressed using S3TC if texture compression is enabled.

tint

tint { ... }

Defines a Hightile texture tint to simulate palette effects normally used on ART-file tiles. The brace-enclosed block may contain these instructions:

pal

pal palnum

The palette number the tint applies to.

color

red value

green value

blue value

r value

g value

b value

Specifies a color component value, in the range of 0 to 255. Unspecified components are assumed to be 255 and any out of range values are clamped to the maximum or minimum as appropriate.

flags

flags flags

Specifies any special processing effects to use for the tint. The value of flags may be the sum of any of these values:

  • 1 = convert to greyscale
  • 2 = invert colours

skybox

skybox { ... }

Defines a skybox that overrides a parallaxing floor or ceiling in OpenGL Polymost rendering mode. The brace-enclosed block may contain these instructions:

tile

tile tilenum

Specifies the ART file tile to override.

pal

pal palnum

Specifies the palette number the skybox should happen for.

facename

*facename* filename

Defines a single face of the skybox where facename may be any of these keywords appropriate for the face in question:

Front	Right 	Back	Left 	Top	Bottom
ft	rt	bk	lf	up	dn
front	right	back	left	top 	bottom
forward		lt	ceiling floor
				ceil	down

NOTE: All six faces are required to be specified.


model

model filename { ... }

Defines a model to replace certain sprites in the game when running in OpenGL Polymost mode. filename is the model file in md2 or md3 format.

Note: md2 is considered deprecated.

The brace-enclosed block may contain these instructions:

scale

scale value

value is a (possibly fractional) value specifying a scaling factor for the model when it is rendered, eg. 1.5 for one-and-a-half times as big.

shade

shade shade-offset

shade-offset is an integer value specifying how much to bias the sprite's shade value by. A negative value for this makes the model brighter. Conversely, a positive value makes it darker.

zadd

zadd offset

offset is a (possibly fractional) value specifying a height offset for the model. Quake models are aligned in the center while Build models are aligned at the floor. Using this command will allow Build to use Quake models without modification to the MD2/3 file itself.

skin

skin { ... } Defines a skin to be used on the model for all frames declared after this command. The brace-enclosed block may contain these instructions:

pal

pal palnum

Specifies which palette this skin maps to.

surface

surface surfnum Specifies which MD3 surface this skin should be applied to. This has no significance for MD2 models.

file

file filename

Specifies the texture file to use for the skin. File may be any PNG, JPG, TGA, BMP, GIF or PCX file

IMPORTANT: If your model exists in a subdirectory (ie. the model filename includes a path to the .md2/3) you will need to give the same path to filename if the skin is in the same directory.

anim

anim { ... } Defines an animation from a group of frames in the model. The brace-enclosed block may contain these instructions:

frame

frame0 framename

frame1 framename

Specifies the names of the start (frame0) and end (frame1) frames of the animation.

fps

fps fps

Specifies the frame rate at which the animation should play. This value may be fractional.

flags

flags flags

Specifies any special properties the animation should have, the values of which should be added together to combine multiple options.

Valid options are:

  • 0 = none (looping animation)
  • 1 = one-shot (plays beginning to end once and stops on the last frame).

frame

frame { ... } Defines a range of ART-file tiles to correspond with the given frame/animation of the model. The brace-enclosed block may contain these instructions:

name

name framename

frame framename

If framename is identical to the starting frame of an animation, the engine will play that animation, otherwise the replacement will be static. You can choose to use the frame or name versions of this instruction as both are identical.

tile

tile tilenum

tile0 tilenum

tile1 tilenum

Use the tile instruction to specify an ART-file tile which this model should replace. Use the tile0 and tile1 instructions together to specify a range of ART-file tiles. If you use tile0, you must also have a tile1. You may not use the same instruction twice to specify multiple ranges.

hud

hud { ... }

Defines a range of ART-file tiles to use with a heads-up-display. The brace-enclosed block may contain these instructions:

tile

tile tilenum

tile0 tilenum

tile1 tilenum

tile0 and tile1 together specify a range of ART-file tiles which this model frame should replace when rendered as part of the HUD. You can specify individual tiles using a single tile command.

offset

xadd offset

yadd offset

zadd offset

angadd offset

Use these offsets to fine-tune the location of the model placement. xadd, yadd, and zadd are position offsets relative to the viewer's orienation. You can use floating point values with them. angadd is a Build angle offset. (512 = 90 degrees, 1024 = 180 degrees, etc...).

hide

hide

Some weapons use multiple ART tiles for constructing the gun or animation. Use this option to hide parts that you don't need in your replacement.

nobob

nobob

By default, the HUD model offset is affected by the player bobbing offset when the player is walking. Use this option to disable that.

flipped

flipped

Use this option to apply the settings inside the hud block only if the object is normally rendered x-flipped (mirror image). Some weapons, such as the devastator, are rendered in 2 pieces, the left devastator is actually a mirror image of the right.

nodepth

nodepth

Use this to render a HUD model without the use of the depth buffer. Normally, you should avoid this. The one exception where this is useful is for the spinning nuke menu pointer because it should always be in front - and it just happens to be convex ... which is the one case that is safe with the depth buffer disabled … a rather fortunate coincidence. Smile.gif

voxel

voxel filename { ... }

Defines a voxel to replace sprites. filename is the name of the .KVX file containing the voxel. The brace-enclosed block may contain these instructions:

tile

tile tilenum

tile0 tilenum

tile1 tilenum

Use these instructions to map tiles that should be rendered as a voxels. Use tile to map a single tile to be rendered as voxels and tile0, tile1 together define a range of tiles to be rendered as voxels. The tile0 instruction should appear before the tile1 instruction to define a correct range.

scale

scale value

value is a (possibly fractional) value specifying a scaling factor for the voxelmodel when it is rendered, eg. 1.5 for one-and-a-half times as big.

Un-Definitions

undeftexture

undeftexturerange

undefmodel

undefmodelrange

undefmodelof

EDuke32-Native Commands

alphahack

alphahackrange

dummytile

dummytile <tilenum> <x-dimension> <y-dimension>

Used in DEF files to create a blank tile at location <tilenum> of the dimensions <x-dimension> and <y-dimension>. This allows the creation of placeholder tiles for use with definetexture\texture without having to edit .ART files.

dummytilerange

dummytilerange <tilenum1> <tilenum2> <x-dimension> <y-dimension>

Same as dummytile, but with a range of tiles.

loadgrp

loadgrp <.GRP\.ZIP file>

The DEF equivalent of the /g command line switch. loadgrp can only be used in the originating .DEF file; it is usually duke3d.def or the .DEF file specified by the /h command line switch.

fogpal

fogpal <palette number> <red intensity> <green intensity> <blue intensity>

fogpal defines a palette a sector-based fog effect. To use it, change the pal of your sector to the pal defined with fogpal.

Intensities range from 0-63, and palettes 26, 27, 28 and 29 are pre-defined for you as white, red, green and blue respectively. Sector visibility controls fog density.

Deprecated Commands

definetexture

definetint

defineskybox

definemodel

definemodelskin

definemodelanim

definemodelframe

definevoxel

definevoxeltiles