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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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