Skip to content

paredes invisibles: los espacios del arte quedan solidos y chocas contra la nada #6

Description

@leocagli

write() (lib/map.js:601) escribe todos los caracteres del string, espacios incluidos. El espacio no esta en TILES, asi que cae en NOWHERE, que es solid: true.

Resultado: chocas contra empedrado vacio diez celdas antes de tocar la fuente.

caminando hacia la fuente desde la izquierda por la plaza (y=79):
  BLOQUEADO en x=145 por la celda 146,79 glifo=" " tile={"id":"nowhere","solid":true}
  la primera columna con arte visible de la fuente en y=79 es x=156

celdas " " solidas contra las que el jugador puede chocar: 153

Pasa igual con la estatua.

Y es mas grande que eso: el 24.9% del mapa usa glifos que TILES no declara.

" " x15202 -> NOWHERE     "=" x732 -> NOWHERE
"`" x2     -> NOWHERE     "'" x2   -> NOWHERE
total: 15938 de 64000 = 24.9%

Arreglo

Dos partes:

  1. Que write() haga if (ch === ' ') continue, o que set() ignore el espacio salvo que se lo pida explicito. La stamp() vieja de makeCityRows ya recortaba el arte al primer y ultimo caracter no blanco. Ojo con building() y churchBuilding(), que usan fill(..., ' ') a proposito.
  2. Agregar a TILES las filas que faltan (' ', '=', '`', "'"). El comentario de cabecera de map.js dice que "lo que un caracter significa vive en una tabla, nunca en una cadena de ifs", y hoy un cuarto del arte no pasa por esa tabla.

Metadata

Metadata

Assignees

No one assigned

    Labels

    GrantFox OSSIssue tracked in GrantFox OSSMaybe RewardedIssue may be eligible for a GrantFox rewardThird CampaignCampaign: Third CampaignbugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions