Ativa o menu
Alternar menu de preferências
Alternar menu pessoal
Não autenticado(a)
Your IP address will be publicly visible if you make any edits.
DoomWiki.org
For more information on this article, visit the LINEDEFS page on the Doom Wiki.

Linedefs são o que compõem a “forma” (por falta de palavra melhor) do seu mapa. Cada linedef fica entre dois vértices e contém um ou dois sidedefs (que contêm os dados de textura). Existem dois propósitos principais para linedefs. O primeiro é dar ao seu mapa um limite definitivo entre o jogador e o vazio (qualquer área do mapa atrás de uma linedef de um lado só é considerada espaço de void), e o segundo é disparar action specials.

Linedefs podem receber qualquer action special e irão dispará-lo quando uma ação específica ocorrer. Você pode marcar linedefs para que seu special seja executado quando o jogador cruza a linha, quando o jogador usa a linha (switches) ou quando o jogador empurra a linha (similar a switches de Quake ou Quake 2). Monstros também podem disparar specials ao cruzar a linha, e por fim, o impacto de um projétil (hit) ou o cruzamento de um projétil também pode disparar um special, se você quiser.

Em ZScript, linedefs são controladas pela struct Line.

Especificação (formato Doom)

Bytes Tipo de dado Descrição
0-1 Unsigned short Vértice inicial
2-3 Unsigned short Vértice final
4-5 Unsigned short Flags
6-7 Unsigned short Tipo de linha
8-9 Unsigned short Sector tag
10-11 Unsigned short sidedef direito - 0xFFFF significa que não há sidedef
12-13 Unsigned short Sidedef esquerdo - 0xFFFF significa que não há sidedef

Especificação (formato Hexen)

Bytes Tipo de dado Descrição
0-1 Unsigned short Vértice inicial
2-3 Unsigned short Vértice final
4-5 Unsigned short Flags
6 Unsigned byte Action special
7 Unsigned byte Argumento 1 do special
8 Unsigned byte Argumento 2 do special
9 Unsigned byte Argumento 3 do special
10 Unsigned byte Argumento 4 do special
11 Unsigned byte Argumento 5 do special
12-13 Unsigned short sidedef direito - 0xFFFF significa que não há sidedef
14-15 Unsigned short Sidedef esquerdo - 0xFFFF significa que não há sidedef

Linedef flags

Existem vários conflitos na lista de flags, dependendo do jogo. Map translators são usados para definir como valores são associados a flags em um mapa binário. UDMF permite resolver esses conflitos por não usar um array bitfield, e sim referenciar cada flag pelo nome. UDMF também permite definir as flags restantes sem precisar usar uma função como Line_SetIdentification, e várias flags só estão disponíveis nesse formato de mapa.

Flag Bit Hex Descrição Mode UDMF name Line_SetBlocking name
BLOCKING 0 0x0001 bloqueia jogadores e monstros Doom blocking BLOCKF_CREATURES
BLOCKMONSTERS 1 0x0002 bloqueia monstros Doom blockmonsters BLOCKF_MONSTERS
TWOSIDED 2 0x0004 dois lados Doom twosided
DONTPEGTOP 3 0x0008 textura superior é unpegged Doom dontpegtop
DONTPEGBOTTOM 4 0x0010 textura inferior é unpegged Doom dontpegbottom
SECRET 5 0x0020 secreta (aparece como um-lado no automapa) Doom secret
SOUNDBLOCK 6 0x0040 bloqueia som Doom blocksound BLOCKF_SOUND
DONTDRAW 7 0x0080 nunca aparece no automapa Doom dontdraw
MAPPED 8 0x0100 sempre aparece no automapa Doom mapped
RAILING 9 0x0200 linha é uma “railing” Strife jumpover BLOCKF_RAILING
PASSUSE 9 0x0200 passa a ação de “use” Boom passuse
REPEAT_SPECIAL 9 0x0200 pode ser ativada mais de uma vez ZDoom repeatspecial
BLOCK_FLOATERS 10 0x0400 linha bloqueia monstros flutuantes Strife blockfloating BLOCKF_FLOATERS
3DMIDTEX 10 0x0400 atores podem andar na mid texture. Eternity midtex3d
SPAC_Use 10-12 0x0400 ativada quando usada pelo jogador ZDoom playeruse
SPAC_MCross 10-12 0x0800 ativada quando cruzada por monstro ZDoom monstercross
SPAC_Impact 10-12 0x0C00 ativada quando atingida por projétil ZDoom impact
SPAC_Push 10-12 0x1000 ativada quando “bumped” pelo jogador ZDoom playerpush
SPAC_PCross 10-12 0x1400 ativada quando cruzada por projétil ZDoom missilecross
SPAC_UseThrough 10-12 0x1800 ativada quando usada pelo jogador (através, com pass-through) ZDoom playeruseback
TRANSLUCENT 12 0x1000 linha é 25% translúcida (alpha 0.75) Strife translucent
13 0x2000 linha é 75% translúcida (alpha 0.25) Strife transparent
MONSTERSCANACTIVATE 13 0x2000 linha pode ser ativada por jogadores e monstros ZDoom monsteractivate
BLOCK_PLAYERS 14 0x4000 bloqueia jogadores ZDoom blockplayers BLOCKF_PLAYERS
BLOCKEVERYTHING 15 0x8000 bloqueia tudo (inclui tiros e mísseis) ZDoom blockeverything BLOCKF_EVERYTHING
SPAC_Cross - - ativada quando cruzada pelo jogador (padrão) ZDoom playercross
SPAC_AnyCross - - ativada por qualquer coisa cruzando ZDoom anycross
SPAC_MUse - - ativada por monstros usando ZDoom monsteruse
SPAC_MPush - - ativada por monstros “bumping” ZDoom monsterpush
FIRSTSIDEONLY - - linha só pode ser acionada pelo lado da frente. ZDoom firstsideonly
ZONEBOUNDARY - - linha é um limite para zonas de reverb de som. ZDoom zoneboundary
CLIP_MIDTEX - - mid textures da linha são clipadas ao piso e teto (padrão em Strife). Strife clipmidtex
WRAP_MIDTEX - - mid textures da linha são “wrapped” (tile vertical). ZDoom wrapmidtex
CHECKSWITCHRANGE - - switches só podem ser ativados quando alcançáveis verticalmente. ZDoom checkswitchrange
BLOCKPROJECTILE - - linha bloqueia todos os projéteis ZDoom blockprojectiles BLOCKF_PROJECTILES
BLOCKUSE - - linha bloqueia todas as ações de use ZDoom blockuse BLOCKF_USE
BLOCKSIGHT - - linha bloqueia linha de visão para monstros ZDoom blocksight BLOCKF_SIGHT
BLOCKHITSCAN - - linha bloqueia ataques hitscan ZDoom blockhitscan BLOCKF_HITSCAN
3DMIDTEX_IMPASS - - faz a mid texture se comportar como linha intransponível (projéteis passam por ela). Usada junto de midtex3d. ZDoom midtex3dimpassible
BLOCKLANDMONSTERS - - linha bloqueia monstros de chão (monstros sem a flag FLOAT). ZDoom blocklandmonsters BLOCKF_LANDMONSTERS

Propriedades UDMF

Além das flags acima, o Universal Doom Map Format permite definir várias propriedades em linedefs. A menos que especificado, valores padrão para inteiros e floats são 0, e false para booleanos. Elas incluem:

Name Type Description
alpha float Translucência desta linha; o padrão é 1.0.
arg0str string Versão alternativa em string de arg0, usada para named scripts.
arg0 integer Primeiro parâmetro.
arg1 integer Segundo parâmetro.
arg2 integer Terceiro parâmetro.
arg3 integer Quarto parâmetro.
arg4 integer Quinto parâmetro.
comment string Um comentário. É apenas para conveniência do autor do mapa e é ignorado pelo engine.
locknumber integer O special da linha é trancado; veja key types e LOCKDEFS.
renderstyle string Render style; pode ser "translucent" ou "add"; padrão é "translucent".
sidefront integer Índice do sidedef da frente. Sem valor padrão: uma linedef sem sidedef frontal invalida o mapa inteiro.
sideback integer Índice do sidedef de trás. Padrão = -1 para “sem lado de trás”.
special integer Action special da linha.
moreids string tags adicionais da linha, especificados como uma lista de números separados por espaço, por exemplo: "2 666 1003 4505".

See also