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 Linedef page on the Doom Wiki.

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

Linedefs podem receber qualquer action special e dispará-lo quando ocorrer uma ação especificada. Você pode marcar linedefs para executar seu special quando o jogador cruzar a linha, quando o jogador “usar” a linha (interruptores), ou quando o jogador empurrar a linha (similar a switches de Quake ou Quake 2). Monstros também podem disparar specials ao cruzar a linha e, por fim, um impacto ou cruzamento por projétil também pode disparar um special se você quiser.

Em ZScript, linedefs são controlados 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 direita — 0xFFFF significa que não há sidedef
12-13 Unsigned short Sidedef esquerda — 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 action
8 Unsigned byte Argumento 2 do action
9 Unsigned byte Argumento 3 do action
10 Unsigned byte Argumento 4 do action
11 Unsigned byte Argumento 5 do action
12-13 Unsigned short sidedef direita — 0xFFFF significa que não há sidedef
14-15 Unsigned short Sidedef esquerda — 0xFFFF significa que não há sidedef

Flags do linedef

Há 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 resolve esses conflitos ao não usar um bitfield, e sim referenciar cada flag pelo nome. O UDMF também permite definir os demais flags sem precisar de uma função como Line_SetIdentification, e vários flags só estão disponíveis neste formato de mapa.

Flag Bit Hex Descrição Modo Nome no UDMF Nome no Line_SetBlocking
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 “despregada” Doom dontpegtop
DONTPEGBOTTOM 4 0x0010 textura inferior “despregada” Doom dontpegbottom
SECRET 5 0x0020 secreto (mostra como one-sided no automap) Doom secret
SOUNDBLOCK 6 0x0040 bloqueia som Doom blocksound BLOCKF_SOUND
DONTDRAW 7 0x0080 nunca aparece no automap Doom dontdraw
MAPPED 8 0x0100 sempre aparece no automap Doom mapped
RAILING 9 0x0200 linha é uma grade/corrimão Strife jumpover BLOCKF_RAILING
PASSUSE 9 0x0200 passa ação de “use” Boom passuse
REPEAT_SPECIAL 9 0x0200 pode ser ativada mais de uma vez ZDoom repeatspecial
BLOCK_FLOATERS 10 0x0400 bloqueia monstros flutuantes Strife blockfloating BLOCKF_FLOATERS
3DMIDTEX 10 0x0400 atores podem andar sobre a mid texture Eternity midtex3d
SPAC_Use 10-12 0x0400 ativado quando usado pelo jogador ZDoom playeruse
SPAC_MCross 10-12 0x0800 ativado quando cruzado por monstro ZDoom monstercross
SPAC_Impact 10-12 0x0C00 ativado quando atingido por projétil ZDoom impact
SPAC_Push 10-12 0x1000 ativado quando “esbarrado” pelo jogador ZDoom playerpush
SPAC_PCross 10-12 0x1400 ativado quando cruzado por projétil ZDoom missilecross
SPAC_UseThrough 10-12 0x1800 ativado quando usado pelo jogador (através da linha) 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 - - ativado quando cruzado pelo jogador (padrão) ZDoom playercross
SPAC_AnyCross - - ativado por qualquer coisa que o cruze ZDoom anycross
SPAC_MUse - - ativado por monstros usando ZDoom monsteruse
SPAC_MPush - - ativado por monstros esbarrando ZDoom monsterpush
FIRSTSIDEONLY - - linha só pode ser disparada pelo lado da frente ZDoom firstsideonly
ZONEBOUNDARY - - linha é limite de zonas de reverb ZDoom zoneboundary
CLIP_MIDTEX - - mid textures são recortadas ao piso e teto (padrão em Strife) Strife clipmidtex
WRAP_MIDTEX - - mid textures são “wrap” (repetidas) ZDoom wrapmidtex
CHECKSWITCHRANGE - - switches só ativam se 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 agir como linha intransponível (projéteis passam). Usado com midtex3d ZDoom midtex3dimpassible
BLOCKLANDMONSTERS - - linha bloqueia monstros de chão (sem FLOAT) ZDoom blocklandmonsters BLOCKF_LANDMONSTERS

Propriedades UDMF

Além dos 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:

Nome Tipo Descrição
alpha float Translucidez desta linha, 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. Serve só para conveniência do autor e é ignorado pela engine.
locknumber integer O special do linedef é “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 padrão: um 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, como uma lista de números separados por espaço, por exemplo "2 666 1003 4505".

Ver também