Sector
Mais ações
Um sector (setor) é uma área fechada composta por linhas no mapa. Setores são referenciados pelos sidedefs ligados aos linedefs que os delimitam. Setores precisam ser áreas fechadas; isto é, todos os sidedefs que os referenciam devem formar uma ou mais formas fechadas. Note que é possível ter setores “abertos”, e isso pode ser usado para alguns efeitos especiais, mas pode causar resultados imprevisíveis, incluindo travamentos, se usado incorretamente.
Um setor não precisa necessariamente delimitar apenas uma área do mapa. Para evitar redundância, duas áreas separadas do mapa podem ser definidas por um único setor, copiando todas as propriedades de uma área para a outra. Porém, a engine trata essas formas separadas como o mesmo setor. Por exemplo, sons gerados em uma área do setor serão ouvidos por inimigos na outra. Isso pode ser usado intencionalmente para permitir que sons de uma área alertem inimigos em outra área desconectada. Se duas portas forem o mesmo setor, usar Door_Raise em qualquer uma delas fará com que ambas abram.
Em ZScript, os dados de setor ficam armazenados na struct Sector. Ponteiros para setores podem ser obtidos iterando por levels.sectors, pelo campo cursector de um ator, e por outros meios, como LineTrace.
Especificação
| Bytes | Tipo de dado | Descrição | Notas |
|---|---|---|---|
| 0-1 | LE 16-bit signed | Altura do piso | |
| 2-3 | LE 16-bit signed | Altura do teto | |
| 4-11 | array de 8-bit | Textura do piso | |
| 12-19 | array de 8-bit | Textura do teto | |
| 20-21 | LE 16-bit signed | Nível de luz | Vanilla Doom arredondava o nível de luz para o múltiplo de 8 mais próximo; ZDoom mostra níveis de luz únicos para todos os valores |
| 22-23 | LE 16-bit unsigned | Special de setor | |
| 24-25 | LE 16-bit unsigned | Tag do setor | Para uso com Action specials que referenciam um setor pela sua tag |
Propriedades UDMF
O Universal Doom Map Format permite definir várias propriedades em setores. A menos que especificado, valores padrão para inteiros e floats são 0, e false para booleanos. Elas incluem:
| Nome | Tipo | Descrição |
|---|---|---|
| xpanningfloor | float | Offset X da textura do piso, padrão = 0.0. |
| ypanningfloor | float | Offset Y da textura do piso, padrão = 0.0. |
| xpanningceiling | float | Offset X da textura do teto, padrão = 0.0. |
| ypanningceiling | float | Offset Y da textura do teto, padrão = 0.0. |
| xscalefloor | float | Escala X da textura do piso, padrão = 1.0. |
| yscalefloor | float | Escala Y da textura do piso, padrão = 1.0. |
| xscaleceiling | float | Escala X da textura do teto, padrão = 1.0. |
| yscaleceiling | float | Escala Y da textura do teto, padrão = 1.0. |
| rotationfloor | float | Rotação da textura do piso em graus, padrão = 0.0. |
| rotationceiling | float | Rotação da textura do teto em graus, padrão = 0.0. |
| ceilingplane_a | float | Define a equação do plano para o teto do setor.
O padrão é um plano horizontal na altura de heightceiling. heightceiling ainda será usado para calcular o alinhamento da textura. A equação do plano só será usada se os 4 valores forem fornecidos. |
| ceilingplane_b | float | |
| ceilingplane_c | float | |
| ceilingplane_d | float | |
| floorplane_a | float | Define a equação do plano para o piso do setor.
O padrão é um plano horizontal na altura de heightfloor. heightfloor ainda será usado para calcular o alinhamento da textura. A equação do plano só será usada se os 4 valores forem fornecidos. |
| floorplane_b | float | |
| floorplane_c | float | |
| floorplane_d | float | |
| lightfloor | integer | Nível de luz do piso. Padrão é 0. |
| lightceiling | integer | Nível de luz do teto. Padrão é 0. |
| lightfloorabsolute | bool | true = lightfloor é um valor absoluto. Padrão é relativo ao nível de luz do setor. |
| lightceilingabsolute | bool | true = lightceiling é um valor absoluto. Padrão é relativo ao nível de luz do setor. |
| alphafloor | float | Translucidez do plano do piso (só faz sentido com Sector_SetPortal). Padrão é 1.0. |
| alphaceiling | float | Translucidez do plano do teto (só faz sentido com Sector_SetPortal). Padrão é 1.0. |
| renderstylefloor | string | Renderstyle do plano do piso (só faz sentido com Sector_SetPortal), pode ser "translucent" ou "add", padrão é "translucent". |
| renderstyleceiling | string | Renderstyle do plano do teto (só faz sentido com Sector_SetPortal), pode ser "translucent" ou "add", padrão é "translucent". |
| gravity | float | Gravidade do setor. Padrão é 1.0. |
| lightcolor | integer | Cor da luz do setor como valor RRGGBB, padrão = 0xffffff. Dispensa o thing ColorSetter. |
| fadecolor | integer | Cor da névoa (fog) do setor como valor RRGGBB, padrão = 0x000000. Dispensa o thing FadeSetter. |
| desaturation | float | Fator de dessaturação. 0 = nenhuma, 1 = total, padrão = 0. Dispensa o thing ColorSetter. |
| silent | bool | Atores neste setor não fazem som. |
| nofallingdamage | bool | Dano de queda é desativado neste setor. |
| dropactors | bool | Atores “caem” com pisos que se movem instantaneamente. |
| norespawn | bool | Jogadores não podem renascer (respawn) neste setor. |
| soundsequence | string | A sound sequence a tocar quando este setor se move. Colocar um sound sequence thing no setor sobrescreve esta propriedade. |
| hidden | bool | Se true, este setor não será desenhado no automap texturizado. |
| waterzone | bool | Setor é submerso e permite nadar. Dispensa usar things WaterZone. |
| moreids | string | Tags adicionais do setor, como lista de números separados por espaço, ex.: "2 666 1003 4505". |
| damageamount | integer | Quantidade de dano infligida por este setor. Padrão = 0. Se for 0, todas as outras propriedades de dano serão ignoradas. Definir dano por estas propriedades sobrescreve qualquer dano definido por sector specials. Valor negativo cria um setor de cura. |
| damagetype | string | Tipo de dano para dano de setor. Padrão = "None" (dano genérico). |
| damageinterval | integer | Intervalo em tics entre aplicações de dano. Padrão = 32. |
| leakiness | integer | Probabilidade de “vazar” através do traje antirradiação (0 = nunca, 256 = sempre). Padrão = 0. |
| damageterraineffect | bool | Se true, um splash de terreno é gerado ao final de cada intervalo de dano. Padrão = false. |
| damagehazard | bool | Se true, o modelo de dano muda para o dano atrasado de Strife para este setor. Padrão = false. |
| floorterrain | string | Define o terreno do piso do setor. O padrão é usar a definição de terreno do flat. |
| ceilingterrain | string | Define o terreno do teto do setor. O padrão é usar a definição de terreno do flat. |
| portal_ceil_alpha | float | Translucidez do portal do teto. O padrão 0 significa “não visível”. |
| portal_ceil_blocksound | bool | Portal do teto bloqueia som. |
| portal_ceil_disabled | bool | Portal do teto desativado. |
| portal_ceil_nopass | bool | Portal do teto bloqueia movimento se true. |
| portal_ceil_norender | bool | Portal do teto não é renderizado. |
| portal_ceil_overlaytype | string | Define o estilo de translucidez: "translucent" (padrão) ou "additive". |
| portal_floor_alpha | float | Translucidez do portal do piso. O padrão 0 significa “não visível”. |
| portal_floor_blocksound | bool | Portal do piso bloqueia som. |
| portal_floor_disabled | bool | Portal do piso desativado. |
| portal_floor_nopass | bool | Portal do piso bloqueia movimento se true. |
| portal_floor_norender | bool | Portal do piso não é renderizado. |
| portal_floor_overlaytype | string | Define o estilo de translucidez: "translucent" (padrão) ou "additive". |
| noattack | bool | Se true, monstros no setor não atacam. |
