LINEDEFS
Mais ações
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.
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". |
