1 k8vavoom terrain extensions and bootprint definition, v0.91
2 ===========================================================
8 everything that is at https://zdoom.org/wiki/TERRAIN is supported (as of May, 2021).
10 in addition, you can modify an existing terrain by redefining it like:
16 the difference between this and standard terrain override is that without "modify"
17 keyword, existing terrain will be reset to default values. if you'll try to modify
18 the definition that wasn't yet defined, "modify" will be ignored.
20 there are extended options for terrain, which should be used in "k8vavoom" block.
29 this is done so other engines could simply skip the extensions without knowing how to
30 parse k8vavoom options.
36 removes "allowprotection" flag.
39 removes "liquid" flag.
42 removes "damageonland" flag.
45 this terrain definition is applied only for players. for other entities, default
49 removes "playeronly" flag.
52 if "gm_vanilla_liquids" cvar is false, default terrain will be returned instead of this one.
55 removes "optout" flag.
58 bootprint definition for this terrain.
59 note that bootprint flat (specified in bootprint definition) has higher priority.
61 detectfloorflat <globmask>
62 flats matching this globmask will be marked as belonging to this terrain.
63 this option can be specified several times, and it is cumulative.
64 "globmask" is a wildcard expression, it supports "*" and ranges in "[]"
67 "land step sound" will be used when a player landed on the given terrain.
68 "small object" is the object with a mass less than 10, or with "small splash" flag set.
69 landing sound will be played regardless of splash object presence. i.e. you can use
70 landing sound to avoid spawning dummy splash objects. this sound will be played for both
71 liquids and normal terrains.
72 you can use zero volume to disable land sounds.
75 landing sound volume, [0..1]. default is 1.0.
77 smalllandvolume <float>
78 "small object" landing sound volume, [0..1]. default is 1.0.
81 landing sound volume for both object types, [0..1]. default is 1.0.
86 smalllandsound <soundname>
87 "small object" landing sound name.
89 alllandsound <soundname>
90 landing sound name for both object types.
93 footsteps are used to produce footstep sounds on a given terrain.
94 you can use zero time or volume to disable footstep sounds for a given mode.
96 walkingstepvolume <float>
97 footstep sound volume when walking, [0..1]. default is 1.0.
99 runningstepvolume <float>
100 footstep sound volume when running, [0..1]. default is 1.0.
102 crouchingstepvolume <float>
103 footstep sound volume when crouching, [0..1]. default is 1.0.
105 allstepvolume <float>
106 footstep sound volume for all modes, [0..1]. default is 1.0.
108 walkingsteptime <float>
109 footstep sound interval when walking, in seconds. default is 0.0 (no sound).
111 crouchingsteptime <float>
112 footstep sound interval when crouching, in seconds. default is 0.0 (no sound).
114 runningsteptime <float>
115 footstep sound interval when running, in seconds. default is 0.0 (no sound).
118 footstep sound interval for all modes, in seconds. default is 0.0 (no sound).
120 leftstepsound <soundname>
121 sound for the left foot.
123 rightstepsound <soundname>
124 sound for the right foot.
126 allstepsound <soundname>
127 assign the given sound for both feets.
134 this is bootprint definition section. it will use base bootprint decal (as specified
135 in `PlayerPawn`) to leave bootprints. You can change decal shade, translucency and
138 bootprint VanillaWater {
139 time default // or: time minsecflt maxsecflt
142 animator LiquidBootPrintFader
146 bootprint redefinition completely removes the old bootprint, including any flats for it.
147 i.e. redefined bootprint will not be assigned to any flats. you can use "modify" to
148 modify an existing bootprint. if you'll try to modify the definition that wasn't yet
149 defined, "modify" wiil be ignored.
151 note that bootprint decal should be drawn for the right foot. it will be mirrored for
152 the left foot. the engine will automatically apply some offset too, so decal sprite
153 "center point" should be roughly at the center of the decal.
158 time <default | min max>
159 how long the player should leave bootprints, in seconds?
160 "default" is some default value (around 4.0 seconds).
161 you can specify minimum and maximum time instead, and the engine will choose something
162 in that range (inclusive) at random.
165 globlask for flats that leaves this bootprint. this option is cumulative.
168 set decal shade (as in decaldef):
171 stade flatpic [maxout <byte>]
172 decal shade will be taken as average color of the floor texture.
173 note that this cannot be used for blood decal bootprints yet.
174 "maxout" will scale the average color up to the given value.
175 scaling is done by selecting maximum color component, and scaling others.
181 there are some special scaling values:
183 1: multiply all color components by 1.5
184 2: multiply all color components by 2.0
185 3: multiply all color components by 2.5
186 4: multiply all color components by 3.0
187 5: multiply all color components by 3.5
188 6: multiply all color components by 4.0
189 default is 2 (i.e. multiply by 2.0).
192 this is used for bootprints from floor decals.
193 currently no extended options are available.
194 this is default if no shade was specified.
197 set decal translucency
200 set translucency to 1.0
203 force decal animator. you can use "none" to remove default decal animators.
206 this is useful for decals from bloodsplats: bootprint decal will take its
207 translucency from the corresponding bloodsplat decal.
211 default bootprint animators
212 ===========================
214 there are some predefined animators you can use for various bootprint types.
217 this is default fadeoff animator for bootprints from liquids.
221 bootprints from floor decals
222 ============================
224 flat decal definition can contain k8vavoom block to specify bootprints for such decals:
227 BootPrint K8Gore_BootPrint
232 assign flats to bootprints and to terrains
233 ==========================================
235 it is possible to use special blocks to assign flats to bootprints:
237 assign_bootprint BootprintName {
243 assign_bootprint TerrainName {
247 currently, the only supported command in such blocks is:
253 new `PlayerPawn` properties
254 ===========================
256 you can use the following DECORATE properties to control player decal:
258 Player.BaseBootPrintDecal <name>
259 set base decal name for bootprints.
260 default is "BaseBootPrintDecal"
262 Player.BootPrintDelayTime0 <float>
263 Player.BootPrintDelayTime1 <float>
264 delay between bootprints, in seconds.
265 this specifies the interval, the actual time will be something in that
266 interval (choosen by random). always specify both values.
267 default is: 0.12 to 0.16
269 Player.BootPrintMinDist <float>
270 minimum distance between two bootprints, in game units.
273 Player.BootPrintRadiusMult <float>
274 actor radius will be multiplied by this value to calculate bootprint
275 decal offset from the actor origin.
278 Player.BootPrintRandomOfs0 <float>
279 Player.BootPrintRandomOfs1 <float>
280 a random value from this interval will be added to decal offset.
284 new `PlayerPawn` flags
285 ======================
287 Player.BootPrintEnabled
288 are bootprints enabled for this pawn?
292 should the engine flip bootprint decal for the left foot?
295 Player.BootPrintFlipOffset
296 should the engine flip bootprint decal offset for the left foot?