Compare commits

..
35 Commits
Author SHA1 Message Date
manzolo a50847da2b Versione 0.1.66 2026-10-31 20:32:52 +01:00
manzoloandClaude Fable 5.1 1fc446d02a Il flipper rivisto con la revisione di Codex: punti solo a un urto nuovo, sottopassi contro gli attraversamenti, molla che arriva sempre in campo (senza cancelletto), salvataggio col tempo della simulazione e in vista, corsie che contano attraversando la riga, traguardo acquisito appena raggiunto, annullare non lancia, due dita e tasto destro, pulsanti dei flipper sempre attivi
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GiECd9RWGMKV7n3K1mdy8T
2026-10-31 20:24:01 +01:00
manzoloandClaude Fable 5.1 7076123fcf Il flipper del River: la tavola di Codex con San Piero dipinto (Fortezza, Pieve, torre, la Sieve fra i flipper, il Regolo con la corona, le bandiere dei rioni) e sopra le parti meccaniche del gioco: molla, arco, corsie dei rioni (tutte e quattro: PALIO), funghi, bersagli a caduta, Regolo, sponde elastiche, due flipper; fisica a passo fisso, tre palline, tre livelli (Andrea)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GiECd9RWGMKV7n3K1mdy8T
2026-10-31 18:53:04 +01:00
manzolo 449c9511e1 Versione 0.1.65 2026-10-31 18:00:32 +01:00
manzoloandClaude Opus 5.5 0ec49c4fe7 Lo zio Mario: «Menomale tu ci sei te, Zio!» / «Alla terza tu capisci subito, al volo!» alla Ghiacciomobile, e nell'orto la California «sopra Firenzola» (Andrea)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GiECd9RWGMKV7n3K1mdy8T
2026-10-31 17:11:01 +01:00
manzoloandClaude Opus 5.5 b41cadd95b Lo zio Mario alla Ghiacciomobile: «Siamo a cavallo al ciuco!» e «Tu sei sveglio: alla terza volta tutta capisci subito!» (Andrea)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GiECd9RWGMKV7n3K1mdy8T
2026-10-31 17:06:19 +01:00
manzoloandClaude Opus 5.5 0bd3e2255f Il gioco sta solo sul VPS: make deploy spedisce dritto lì e controlla la versione sull'indirizzo pubblico; tolti deploy-vps e la copia di home-server (Andrea)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GiECd9RWGMKV7n3K1mdy8T
2026-10-31 16:21:56 +01:00
manzoloandClaude Opus 5.5 dc17a7f963 Il sito pubblico è sul VPS: make deploy-vps controlla che https://50037.manzolo.it serva la versione appena spedita (VPS_URL); STATO.md aggiornato
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GiECd9RWGMKV7n3K1mdy8T
2026-10-31 16:16:24 +01:00
manzolo 995ad09cca Versione 0.1.64 2026-10-31 15:49:24 +01:00
manzoloandClaude Opus 5.5 b9e9976d34 La hardcore techno di Andrea (Suno) alla console del campo da basket di Via Cipriani, portata al volume del gioco; da lontano la house della Piazza e la tecno (Andrea)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GiECd9RWGMKV7n3K1mdy8T
2026-10-31 15:38:29 +01:00
manzoloandClaude Opus 5.5 d37dafd58c Il test delle bruciate rovescia a cottura piena: al limite, con certe castagne, una volta su cento ne restavano crude troppe
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GiECd9RWGMKV7n3K1mdy8T
2026-10-31 15:34:22 +01:00
manzoloandClaude Opus 5.5 4d1611c6eb All'Ingorgo anche l'inizio di Via Cipriani: sfondo di notte di Codex, la console sul campo da basket con le casse in cima alle scale, laser rossi e strobo, la folla che poga a 180 battiti; la folla davanti ad Andrea senza fessure fra le due fasce (Andrea)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GiECd9RWGMKV7n3K1mdy8T
2026-10-31 15:33:17 +01:00
manzoloandClaude Opus 5.5 7268585ed9 La musica anni '90 di Andrea (Suno) alla console del giardino di Via Calimara, portata al volume del gioco; da lontano la house della Piazza e il latino del Comune (Andrea)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GiECd9RWGMKV7n3K1mdy8T
2026-10-31 15:27:06 +01:00
manzoloandClaude Opus 5.5 1b929f1333 All'Ingorgo anche Via Calimara: sfondo di notte di Codex, la console nel giardino sotto i cedri con la palla a specchi, la strada piena e la folla che salta (Andrea)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GiECd9RWGMKV7n3K1mdy8T
2026-10-31 15:24:16 +01:00
manzoloandClaude Opus 5.5 3ba108cf88 All'Ingorgo Andrea ha la sua birra (foglio di Codex): camminando la tiene davanti al petto, parlando pure, e fermo alza il bicchiere schiumante a tempo con la folla (Andrea)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GiECd9RWGMKV7n3K1mdy8T
2026-10-31 15:20:22 +01:00
manzoloandClaude Opus 5.5 70f4e641dc All'Ingorgo Andrea sta dentro la folla: dalla vita in giù la gente dello sfondo gli passa davanti, a strisce che saltano a tempo con la folla e col bordo a teste (Andrea: «sembra di volare fra le persone»)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GiECd9RWGMKV7n3K1mdy8T
2026-10-31 15:17:01 +01:00
manzoloandClaude Opus 5.5 23aa9c4788 In cima a Via dell'Antica Posta si arriva sotto la console dell'underground (il marciapiede di destra, fino in fondo); sotto una console le altre calano fino al loro filo, così lì si sente la sola musica di quella (Andrea)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GiECd9RWGMKV7n3K1mdy8T
2026-10-31 15:09:45 +01:00
manzoloandClaude Opus 5.5 04f9a5cb12 Il minigioco delle bruciate alla Smarronata: coi volontari della Misericordia si gira a mano la manovella del cilindro sul fuoco, facendo giri col dito o col mouse; troppo piano si carbonizzano sotto e restano crude sopra, troppo forte volano nel fuoco; cotte, nel sacco (Andrea)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GiECd9RWGMKV7n3K1mdy8T
2026-10-31 15:03:55 +01:00
manzolo 6b833341c5 Versione 0.1.63 2026-10-31 13:52:01 +01:00
manzoloandClaude Fable 5.1 4fe6bf4649 All'Ingorgo la folla dipinta salta a tempo: la fascia della gente tagliata in strisce che sobbalzano sul battito, due fasce per scena, dietro piano e davanti forte (Andrea)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GiECd9RWGMKV7n3K1mdy8T
2026-10-31 13:42:55 +01:00
manzoloandClaude Fable 5.1 b10f031133 Il risveglio leggero per davvero: palpebre disegnate su una tela piccola e allargate con l'interpolazione (bordo morbido senza filtri né passate), tutto sulla tela principale, una versione sola; l'arretrato grafico dopo il risveglio passa da 24 secondi a un decimo. «Fanfara» si legge senza accenti (Andrea)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GiECd9RWGMKV7n3K1mdy8T
2026-10-31 13:40:43 +01:00
manzoloandClaude Opus 5.5 4d2278a8f8 La musica della Smarronata, di Andrea con Suno: il liscio nello spiazzo, più forte vicino alle coppie che ballano, e la mazurca dentro il tendone (Andrea)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GiECd9RWGMKV7n3K1mdy8T
2026-10-31 12:45:01 +01:00
manzoloandClaude Opus 5.5 5a38e0eafe La Smarronata piena di gente com'era: i volontari della Misericordia alle bruciate, la fanfara degli alpini, la polenta, il vino, la gente coi cartocci e le coppie del liscio; il fuoco vivo sotto il cilindro delle bruciate; nei Ringraziamenti la dedica allo zio Mario (Andrea)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GiECd9RWGMKV7n3K1mdy8T
2026-10-31 12:39:56 +01:00
manzoloandClaude Opus 5.5 4f2ee45abf Il tendone della Smarronata col tetto a botte, fuori e dentro, come nel video del 1993, con la fascia tricolore (Andrea)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GiECd9RWGMKV7n3K1mdy8T
2026-10-31 12:26:33 +01:00
manzoloandClaude Opus 5.5 09b031dc2e Nel tendone della Smarronata i cartelli dipinti della polenta e del vino gratis, da guardare ingranditi; «fanfara» si legge fanfàra (Andrea)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GiECd9RWGMKV7n3K1mdy8T
2026-10-31 12:22:34 +01:00
manzoloandClaude Opus 5.5 616d514fc5 Il cartello della Smarronata sul lampione si clicca: stava sotto la Sieve, che lo copriva (Andrea)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GiECd9RWGMKV7n3K1mdy8T
2026-10-31 12:15:01 +01:00
manzoloandClaude Opus 5.5 b07a1e4941 La Smarronata del 1993: dal vecchio cartello sul lampione del Ponte sulla Sieve, coi ricordi di Andrea, la macchina del tempo porta alla festa delle castagne degli alpini sotto il ponte, col bruciatore delle bruciate, gli stand e il tendone giallo con le tavolate; dalle scene del viaggio la mappa non porta più via; tolte le battute sull'altezza del Taglia (Andrea)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GiECd9RWGMKV7n3K1mdy8T
2026-10-31 12:13:55 +01:00
manzoloandClaude Opus 5.5 f57a91ca74 Il risveglio di nuovo come prima sul computer, con la sfocatura vera, e leggero sul telefono, senza filtri; tutte e due su una tela a parte che c'è solo finché il risveglio dura, così la scena non ne risente (Andrea)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GiECd9RWGMKV7n3K1mdy8T
2026-10-31 11:57:26 +01:00
manzoloandClaude Opus 5.5 f7ca286066 Le palpebre del risveglio di nuovo sfumate, senza filtri: sedici passate trasparenti che sporgono verso l'occhio aperto (Andrea)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GiECd9RWGMKV7n3K1mdy8T
2026-10-31 11:29:45 +01:00
manzolo 5b64292ec9 Versione 0.1.62 2026-10-31 11:08:32 +01:00
manzoloandClaude Opus 5.5 b9bd50c8c3 Il risveglio non rallenta più il gioco: la nebbia è lo sfondo sfocato disegnato sopra, senza filtri (ctx.filter e il filter CSS sulla tela facevano andare a passo d'uomo tutto, anche dopo), e l'iframe del muro c'è solo a muro aperto; le prove nel browser aspettano la fine del risveglio e l'avvio del gioco
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GiECd9RWGMKV7n3K1mdy8T
2026-10-31 10:59:03 +01:00
manzoloandClaude Opus 5.5 c5953f04c0 Si comincia svegliandosi sulla panchina dei vecchietti dopo una notte brava: gli occhi che si aprono a fatica, la piazza sfocata e doppia; e dal Barone il telefonino col sito di San Piero, che si apre a tutto schermo, e il Muro del Sanpierino vero coi messaggi del 2007, «Aggiorna» compreso (Andrea)
- Il risveglio (src/engine/risveglio.js): primo piano sopra la scena, con le battute mentre le palpebre si aprono e
  i vecchietti che danno la notizia del palio; «Salta» lo salta.
- Il telefonino del Barone (src/engine/telefono.js): sale dal basso come il libro, la home di sanpiero50037.it dalla
  Wayback Machine nello schermo, il mattone del muro apre il muro.
- Il muro (assets/muro, tools/muro.py): la pagina vera rifatta statica dal muro riesumato, coi 24 messaggi del dump
  (senza email né IP) e quelli del gioco, che arrivano con la storia; «Scrivi» spento.
- Il gioco sgancia i service worker di altre app rimasti sul suo indirizzo (la Bussola su localhost:8080).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GiECd9RWGMKV7n3K1mdy8T
2026-10-31 09:52:34 +01:00
manzoloandClaude Opus 5.5 1ea78161d1 Segnato il minigioco della birra all'Ingorgo: spillare e bere (Andrea)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GiECd9Quo9nEdXyjXYF8ma
2026-10-31 00:01:11 +01:00
manzolo 5c0f4856bd Versione 0.1.61 2026-10-30 23:45:42 +01:00
manzoloandClaude Opus 5.5 d4b472119d All'underground dell'Ingorgo le luci di Codex: la palla a specchi appesa e colpita dal faro, i riflessi a tempo sui muri e sulla folla, le lampade a inseguimento; altrove restano le nostre, esagerate (Andrea)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GiECd9Quo9nEdXyjXYF8ma
2026-10-30 23:38:56 +01:00
235 changed files with 4237 additions and 171 deletions
+1
View File
@@ -13,6 +13,7 @@ COPY assets/voices /usr/share/nginx/html/assets/voices
COPY assets/credits /usr/share/nginx/html/assets/credits
COPY assets/effects /usr/share/nginx/html/assets/effects
COPY assets/closeups /usr/share/nginx/html/assets/closeups
COPY assets/muro /usr/share/nginx/html/assets/muro
COPY assets/favicon /usr/share/nginx/html/assets/favicon
COPY assets/video /usr/share/nginx/html/assets/video
+6 -13
View File
@@ -24,7 +24,7 @@ CROP ?=
COLORS ?= 64
.PHONY: help serve open test browser verify check-public bump voci voci-elenco sfondi sfondi-genera sfondi-confronto background character \
build up down restart logs ps shell image-size deploy deploy-vps deploy-logs clean distclean
build up down restart logs ps shell image-size deploy deploy-logs clean distclean
## ------------------------------------------------------------ sviluppo
@@ -124,8 +124,7 @@ image-size: ## Dimensione dell'immagine
# Host e indirizzo stanno in deploy.local.mk, fuori da git, per esempio:
# DEPLOY_HOST = root@mio-server
# DEPLOY_URL = https://gioco.esempio
# VPS_HOST = mio-vps (facoltativo: una seconda copia, con make deploy-vps)
# VPS_DIR = docker/leggenda-regolo
# DEPLOY_DIR = docker/leggenda-regolo (la cartella del compose sul server)
-include deploy.local.mk
DEPLOY_DIR ?= /root/leggenda-regolo
DEPLOY_TMP := $(shell mktemp -d -u /tmp/regolo-deploy.XXXXXX)
@@ -151,18 +150,12 @@ deploy: ## Pubblica l'ultimo commit: test, immagine costruita e provata qui, spe
@# Sul server il prune toglie l'immagine vecchia; qui restano solo latest e quella appena pubblicata.
@docker image ls $(IMAGE) --format '{{.Tag}}' | grep -v -x -e latest -e $$(git rev-parse --short HEAD) | \
xargs -r -I{} docker image rm -f $(IMAGE):{} >/dev/null
@# L'indirizzo pubblico deve servire la versione appena spedita.
@v=$$(grep -o "VERSION = '[^']*'" src/version.js); \
for i in 1 2 3 4 5; do curl -s $(DEPLOY_URL)/src/version.js | grep -qF "$$v" && break; sleep 2; done; \
curl -s $(DEPLOY_URL)/src/version.js | grep -qF "$$v" || { echo "$(DEPLOY_URL) non serve $$v"; exit 1; }
@echo "→ $(DEPLOY_URL) ($$(git log -1 --format='%h %s'))"
deploy-vps: ## Spedisce al VPS (VPS_HOST, VPS_DIR in deploy.local.mk) l'immagine dell'ultimo commit già provata da make deploy
@test -n "$(VPS_HOST)" -a -n "$(VPS_DIR)" || { echo "mancano VPS_HOST e VPS_DIR: scrivili in deploy.local.mk"; exit 2; }
@docker image inspect $(IMAGE):$$(git rev-parse --short HEAD) >/dev/null 2>&1 || \
{ echo "manca l'immagine dell'ultimo commit ($$(git rev-parse --short HEAD)): prima make deploy"; exit 1; }
ssh $(VPS_HOST) 'mkdir -p $(VPS_DIR)'
git show HEAD:docker-compose.homeserver.yml | ssh $(VPS_HOST) 'cat > $(VPS_DIR)/docker-compose.yml'
docker save $(IMAGE):$$(git rev-parse --short HEAD) $(IMAGE):latest | gzip | \
ssh $(VPS_HOST) 'gunzip | docker load -q && cd $(VPS_DIR) && docker compose up -d && docker image prune -f >/dev/null'
@ssh $(VPS_HOST) "docker exec $(IMAGE) grep -o \"VERSION = '[^']*'\" /usr/share/nginx/html/src/version.js" | sed 's/^/→ $(VPS_HOST): /'
deploy-logs: ## Log del container sul server di deploy
@test -n "$(DEPLOY_HOST)" || { echo "manca DEPLOY_HOST: scrivilo in deploy.local.mk"; exit 2; }
ssh $(DEPLOY_HOST) 'cd $(DEPLOY_DIR) && docker compose logs -f --tail 50'
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+70
View File
@@ -0,0 +1,70 @@
{
"image": "alpino_vino.png",
"height": 120,
"frames": {
"stand": {
"x": 0,
"y": 0,
"w": 69,
"h": 120,
"ax": 28.2,
"ay": 120
},
"blink": {
"x": 71,
"y": 0,
"w": 69,
"h": 120,
"ax": 28.0,
"ay": 120
},
"talk": {
"x": 142,
"y": 0,
"w": 72,
"h": 120,
"ax": 29.4,
"ay": 120
},
"explain": {
"x": 216,
"y": 0,
"w": 71,
"h": 116,
"ax": 29.3,
"ay": 116
},
"pour": {
"x": 289,
"y": 0,
"w": 72,
"h": 122,
"ax": 30.5,
"ay": 122
},
"pour2": {
"x": 363,
"y": 0,
"w": 73,
"h": 122,
"ax": 30.3,
"ay": 122
},
"give": {
"x": 438,
"y": 0,
"w": 66,
"h": 118,
"ax": 24.5,
"ay": 118
},
"cheers": {
"x": 506,
"y": 0,
"w": 72,
"h": 120,
"ax": 33.4,
"ay": 120
}
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 125 KiB

+70
View File
@@ -0,0 +1,70 @@
{
"image": "andrea-birra.png",
"height": 120,
"frames": {
"walk_1": {
"x": 0,
"y": 0,
"w": 68,
"h": 114,
"ax": 40.2,
"ay": 114
},
"walk_2": {
"x": 70,
"y": 0,
"w": 41,
"h": 114,
"ax": 20.7,
"ay": 114
},
"walk_3": {
"x": 113,
"y": 0,
"w": 67,
"h": 114,
"ax": 38.4,
"ay": 114
},
"walk_4": {
"x": 182,
"y": 0,
"w": 46,
"h": 114,
"ax": 25.3,
"ay": 114
},
"cheer_1": {
"x": 230,
"y": 0,
"w": 51,
"h": 133,
"ax": 21.1,
"ay": 133
},
"cheer_2": {
"x": 283,
"y": 0,
"w": 55,
"h": 130,
"ax": 24.5,
"ay": 130
},
"cheer_3": {
"x": 340,
"y": 0,
"w": 62,
"h": 130,
"ax": 23.8,
"ay": 130
},
"talk": {
"x": 404,
"y": 0,
"w": 58,
"h": 120,
"ax": 21.7,
"ay": 120
}
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB

+70
View File
@@ -0,0 +1,70 @@
{
"image": "cuochi.png",
"height": 120,
"frames": {
"stand": {
"x": 0,
"y": 0,
"w": 95,
"h": 120,
"ax": 41.9,
"ay": 120
},
"blink": {
"x": 97,
"y": 0,
"w": 95,
"h": 120,
"ax": 42.6,
"ay": 120
},
"talk": {
"x": 194,
"y": 0,
"w": 96,
"h": 120,
"ax": 44.4,
"ay": 120
},
"explain": {
"x": 292,
"y": 0,
"w": 95,
"h": 120,
"ax": 44.5,
"ay": 120
},
"work": {
"x": 389,
"y": 0,
"w": 101,
"h": 120,
"ax": 46.7,
"ay": 120
},
"work2": {
"x": 492,
"y": 0,
"w": 101,
"h": 119,
"ax": 45.9,
"ay": 119
},
"give": {
"x": 595,
"y": 0,
"w": 104,
"h": 121,
"ax": 43.1,
"ay": 121
},
"laugh": {
"x": 701,
"y": 0,
"w": 92,
"h": 117,
"ax": 43.7,
"ay": 117
}
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 191 KiB

+70
View File
@@ -0,0 +1,70 @@
{
"image": "fanfara.png",
"height": 120,
"frames": {
"stand": {
"x": 0,
"y": 0,
"w": 107,
"h": 120,
"ax": 47.1,
"ay": 120
},
"blink": {
"x": 109,
"y": 0,
"w": 106,
"h": 120,
"ax": 47.1,
"ay": 120
},
"talk": {
"x": 217,
"y": 0,
"w": 110,
"h": 120,
"ax": 50.3,
"ay": 120
},
"laugh": {
"x": 329,
"y": 0,
"w": 107,
"h": 120,
"ax": 47.0,
"ay": 120
},
"play": {
"x": 438,
"y": 0,
"w": 112,
"h": 113,
"ax": 50.3,
"ay": 113
},
"play2": {
"x": 552,
"y": 0,
"w": 114,
"h": 118,
"ax": 51.8,
"ay": 118
},
"play3": {
"x": 668,
"y": 0,
"w": 111,
"h": 115,
"ax": 51.6,
"ay": 115
},
"bow": {
"x": 781,
"y": 0,
"w": 110,
"h": 104,
"ax": 51.2,
"ay": 104
}
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 222 KiB

+70
View File
@@ -0,0 +1,70 @@
{
"image": "gente.png",
"height": 115,
"frames": {
"stand": {
"x": 0,
"y": 0,
"w": 126,
"h": 115,
"ax": 62.9,
"ay": 115
},
"blink": {
"x": 128,
"y": 0,
"w": 125,
"h": 115,
"ax": 62.8,
"ay": 115
},
"talk": {
"x": 255,
"y": 0,
"w": 126,
"h": 115,
"ax": 62.9,
"ay": 115
},
"talk2": {
"x": 383,
"y": 0,
"w": 126,
"h": 115,
"ax": 63.9,
"ay": 115
},
"eat": {
"x": 511,
"y": 0,
"w": 128,
"h": 117,
"ax": 62.9,
"ay": 117
},
"eat2": {
"x": 641,
"y": 0,
"w": 128,
"h": 117,
"ax": 63.0,
"ay": 117
},
"laugh": {
"x": 771,
"y": 0,
"w": 127,
"h": 117,
"ax": 62.0,
"ay": 117
},
"toast": {
"x": 900,
"y": 0,
"w": 127,
"h": 116,
"ax": 62.5,
"ay": 116
}
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 271 KiB

+70
View File
@@ -0,0 +1,70 @@
{
"image": "liscio.png",
"height": 115,
"frames": {
"stand": {
"x": 0,
"y": 0,
"w": 108,
"h": 115,
"ax": 54.5,
"ay": 115
},
"blink": {
"x": 110,
"y": 0,
"w": 108,
"h": 115,
"ax": 54.3,
"ay": 115
},
"talk": {
"x": 220,
"y": 0,
"w": 111,
"h": 115,
"ax": 57.2,
"ay": 115
},
"laugh": {
"x": 333,
"y": 0,
"w": 110,
"h": 115,
"ax": 55.6,
"ay": 115
},
"dance1": {
"x": 445,
"y": 0,
"w": 117,
"h": 112,
"ax": 57.2,
"ay": 112
},
"dance2": {
"x": 564,
"y": 0,
"w": 115,
"h": 111,
"ax": 57.0,
"ay": 111
},
"dance3": {
"x": 681,
"y": 0,
"w": 115,
"h": 112,
"ax": 56.5,
"ay": 112
},
"dance4": {
"x": 798,
"y": 0,
"w": 113,
"h": 113,
"ax": 54.4,
"ay": 113
}
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 230 KiB

+70
View File
@@ -0,0 +1,70 @@
{
"image": "volontari.png",
"height": 120,
"frames": {
"stand": {
"x": 0,
"y": 0,
"w": 102,
"h": 120,
"ax": 48.3,
"ay": 120
},
"blink": {
"x": 104,
"y": 0,
"w": 102,
"h": 120,
"ax": 48.3,
"ay": 120
},
"talk": {
"x": 208,
"y": 0,
"w": 101,
"h": 121,
"ax": 47.4,
"ay": 121
},
"explain": {
"x": 311,
"y": 0,
"w": 100,
"h": 120,
"ax": 47.4,
"ay": 120
},
"work": {
"x": 413,
"y": 0,
"w": 107,
"h": 112,
"ax": 49.0,
"ay": 112
},
"work2": {
"x": 522,
"y": 0,
"w": 104,
"h": 111,
"ax": 47.4,
"ay": 111
},
"give": {
"x": 628,
"y": 0,
"w": 100,
"h": 121,
"ax": 47.8,
"ay": 121
},
"laugh": {
"x": 730,
"y": 0,
"w": 100,
"h": 119,
"ax": 48.2,
"ay": 119
}
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 195 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 188 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 270 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 208 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 239 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 226 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 130 KiB

+57
View File
@@ -0,0 +1,57 @@
<html>
<head>
<meta http-equiv="Content-Language" content="it">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Responsabilità degli Iscritti</title>
</head>
<body>
<div align="center">
<center>
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="600">
<tr>
<td width="100%">
<p align="center" style="margin-top: 0; margin-bottom: 0"><b>
<font size="6" face="Arial">Responsabilità degli Iscritti</font></b></p>
<p align="center" style="margin-top: 0; margin-bottom: 0">&nbsp;</p>
<p align="justify" style="margin-top: 0; margin-bottom: 0">
<font face="Arial">Si fa presente che lo <b>Staff di WWW.SANPIERO50037.IT</b>,
non effettuerà controllo preventivo sul contenuto dei commenti e degli
interventi sul &quot;MURO DEL SANPIERINO&quot;, ma, <b><u>vista la possibilità di
risalire agli autori degli stessi</u></b>, si sentirà autorizzato alla
comunicazione di tali dati ai <b>Soggetti Interessati e all'Autorità
Giudiziaria</b> in caso di violazione di qualsiasi articolo del C.C. e del
C.P., si invita pertanto a prendere coscienza delle<b> responsabilità
civili e penali </b>che l'utente si assume in prima persona per il
contenuto di ciò che scrive.</font></p>
<p align="justify" style="margin-top: 0; margin-bottom: 0">&nbsp;</p>
<p align="justify" style="margin-top: 0; margin-bottom: 0"><b>
<font face="Arial">E' pertanto necessario che tutti gli utenti garantiscano il contenuto:</font></b></p>
<p align="justify" style="margin-top: 0; margin-bottom: 0">
<font face="Arial"><b>1 -</b> Non sia volgare, diffamatorio e
pregiudizievole;</font></p>
<p align="justify" style="margin-top: 0; margin-bottom: 0">
<font face="Arial"><b>2 -</b> Non violi in alcun modo i diritti di terzi;</font></p>
<p align="justify" style="margin-top: 0; margin-bottom: 0">
<font face="Arial"><b>3 -</b> Non violi i diritti stabiliti dal
<a href="Privacy.htm">D.Lgs. 30.06.2003 n°196</a> e ogni altra normativa
in</font></p>
<p align="justify" style="margin-top: 0; margin-bottom: 0">
<font face="Arial">&nbsp;materia di Privacy;</font></p>
<p align="justify" style="margin-top: 0; margin-bottom: 0">
<font face="Arial"><b>4 -</b> Non violi la vigente normativa in materia di
Pubblica Sicurezza e Buon Costume e/o altre norme imperative;</font></p>
<p align="justify" style="margin-top: 0; margin-bottom: 0">
<font face="Arial"><b>5 -</b> Non venga inserito per fini di &quot;Spamming&quot;.</font></td>
</tr>
</table>
</center>
</div>
<p align="center"><a href="index.html" style="font: bold 14px Tahoma; color: #800000">&laquo; Torna al Muro</a></p></body>
</html>
@@ -0,0 +1,97 @@
<html>
<head>
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Guida al Muro del Sanpierino</title>
</head>
<body>
<div align="center">
<center>
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="1024">
<tr>
<td width="100%">
<p class="MsoNormal" align="center" style="text-align: center; margin-top: 0; margin-bottom: 0">
<b><span style="font-size: 22.0pt">Guida al Muro del Sanpierino</span></b></p>
<p class="MsoNormal" style="text-align: justify; margin-top: 0; margin-bottom: 0">
<b><u><span style="text-decoration: none; font-size: 18.0pt">&nbsp;</span></u></b></p>
<p class="MsoNormal" style="text-align: justify; margin-top: 0; margin-bottom: 0">
<b><u><span style="font-size: 18.0pt">1 – Iscrizione</span></u></b></p>
<p class="MsoNormal" style="text-align: justify; margin-top: 0; margin-bottom: 0">
<span style="font-size: 14.0pt">Se vuoi scrivere un messaggio sul Muro del
Sanpierino adesso dovrai prima essere iscritto. Iscriversi è gratuito e
semplicissimo, sarà sufficiente andare sul Muro e cliccare sull’icona
“Scrivi”, da lì verrai inviato nella pagina di “Login” dove troverai il
tasto “Iscriviti”,&nbsp; cliccandolo ti troverai direttamente nella pagina
d’Iscrizione. Appena riceveremo la tua richiesta attiveremo il tuo account
e riceverai una mail, all’indirizzo inserito, a conferma dell’attivazione.
A quel punto potrai scrivere sempre e in qualunque momento sul Muro.</span></p>
<p class="MsoNormal" style="text-align: justify; margin-top: 0; margin-bottom: 0">
<span style="font-size: 14.0pt">&nbsp;</span></p>
<p class="MsoNormal" style="text-align: justify; margin-top: 0; margin-bottom: 0">
<b><u><span style="font-size: 18.0pt">2 – Scrivere</span></u></b></p>
<p class="MsoNormal" style="text-align: justify; margin-top: 0; margin-bottom: 0">
<span style="font-size: 14.0pt">Per scrivere sul Muro sarà sufficiente
cliccare sul tasto “Scrivi” e inserire il proprio Nickname e Password (se
non si è iscritti segui le istruzioni al paragrafo 1- Iscrizione). Vi
troverete nella pagina di scrittura vera e propria dove potrete scegliere
se mantenere il vostro Nickname d’iscrizione o variarlo, se rendere
visibile il vostro indirizzo e-mail oppure no e ancora scegliere fra le
oltre 470 smiles disponibili e ancora variare l’aspetto grafico del vostro
messaggio consultando la pagiana di aiuto per la personalizzazione… tante
alternative che sicuramente saranno di vostro gradimento!</span></p>
<p class="MsoNormal" style="text-align: justify; margin-top: 0; margin-bottom: 0">
<span style="font-size: 14.0pt">&nbsp;</span></p>
<p class="MsoNormal" style="text-align: justify; margin-top: 0; margin-bottom: 0">
<b><u><span style="font-size: 18.0pt">3 – Privacy &amp; Responsabilità</span></u></b></p>
<p class="MsoNormal" style="text-align: justify; margin-top: 0; margin-bottom: 0">
<span style="font-size: 14.0pt">L’aspetto più importante di questo Nuovo
Muro del Sanpierino è proprio quello relativo alle Resposabilità che ogni
utente si assume nei post inseriti. Ogni Utente, pur facendo salva la
propria Privacy, non dovrà in alcun modo ledere gli altrui diritti e
quindi:</span></p>
<p style="text-align: justify; margin: 0 0cm">
<span style="font-size: 14.0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <b>1 -</b> Non dovrà essere
volgare, diffamatorio e pregiudizievole;</span></p>
<p style="text-align: justify; text-indent: 35.4pt; margin: 0 0cm"><b>
<span style="font-size: 14.0pt">2 -</span></b><span style="font-size: 14.0pt">
Non dovrà violare in alcun modo i diritti di terzi;</span></p>
<p style="text-align: justify; text-indent: 35.4pt; margin: 0 0cm"><b>
<span style="font-size: 14.0pt">3 -</span></b><span style="font-size: 14.0pt">
Non dovrà violare i diritti stabiliti dal
<a href="http://www.sanpiero50037.it/spswall/Privacy.htm" style="color: blue; text-decoration: underline; text-underline: single">
D.Lgs. 30.06.2003 n°196</a> e ogni altra </span></p>
<p style="text-align: justify; text-indent: 35.4pt; margin: 0 0cm">
<span style="font-size: 14.0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; normativa in materia di Privacy;</span></p>
<p style="text-align: justify; margin-left: 35.4pt; margin-right: 0cm; margin-top: 0; margin-bottom: 0">
<b><span style="font-size: 14.0pt">4 -</span></b><span style="font-size: 14.0pt">
Non dovrà violare la vigente normativa in materia di Pubblica Sicurezza e
</span></p>
<p style="text-align: justify; margin-left: 35.4pt; margin-right: 0cm; margin-top: 0; margin-bottom: 0">
<b><span style="font-size: 14.0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></b>
<span style="font-size: 14.0pt">Buon Costume e/o altre norme imperative;</span></p>
<p style="text-align: justify; text-indent: 35.4pt; margin: 0 0cm"><b>
<span style="font-size: 14.0pt">5 -</span></b><span style="font-size: 14.0pt">
Non dovrà inserire post per fini di &quot;Spamming&quot;.</span></p>
<p style="text-align: justify; margin: 0 0cm">
<span style="font-size: 14.0pt">In caso di violazione di una delle regole
descritte qui sopra il messaggio verrà cancellato quanto prima e, in caso
di richiesta da parte del Soggetto interessato o dell’Autorità
Giudiziaria, verranno comunicati i suoi dati oltre, naturalmente, al
blocco dell’Utente che si renderà responsabile di tale messaggio. Per
tutti gli altri messaggi la Privacy dei nostri Utenti sarà tutelata come
descritto dal
<a href="http://www.sanpiero50037.it/spswall/Privacy.htm" style="color: blue; text-decoration: underline; text-underline: single">
D.Lgs. 30.06.2003 n°196</a>, tranne nei caso di violazione dei nostri Data
Base da attacchi esterni.</span></td>
</tr>
</table>
</center>
</div>
<p align="center"><a href="index.html" style="font: bold 14px Tahoma; color: #800000">&laquo; Torna al Muro</a></p></body>
</html>
Binary file not shown.

After

Width:  |  Height:  |  Size: 177 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 173 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 202 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 284 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 278 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 176 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 181 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 182 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 484 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 247 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 904 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 219 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 208 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 284 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 610 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 269 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 128 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 129 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 138 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 167 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 758 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 605 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 198 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 156 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 363 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 573 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 202 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 234 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 303 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 340 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

+40
View File
@@ -0,0 +1,40 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="it" xml:lang="it">
<head>
<!-- Il Muro del Sanpierino (2007-2009, Manzolo e Baron De Duke) dentro il gioco, sul telefonino del Barone: lo stesso
markup di thewall.php, coi messaggi veri (tools/muro.py: niente email né IP) e quelli del gioco
(story.closeups.muro_sanpierino.messages, ognuno con la sua condizione). «Scrivi» è spento (Andrea, 31 ottobre). -->
<link rel="stylesheet" type="text/css" href="./muro.css" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Il Muro del Sanpierino</title>
</head>
<body>
<table width="1024" border="0" align="center">
<td width="250">&nbsp;</td>
<td width="524" align="center">
<a href="#" id="logo"><img class="imgnoborder" src="./img/logo_trasparente_obliquo.gif" alt="Return to Website" /></a>
</td>
<td width="250">&nbsp;</td>
</table>
<div><br /></div>
<div class="divcenter">
<div class="divcenter">
<span class="title">Il Muro del Sanpierino</span><br />
<a href="./Responsabilita.htm"><span class="pblue">Responsabilita'</span></a>
<span class="pblack"> - </span>
<a href="./guida_al_muro_del_sanpierino.htm"><span class="pred">Guida al Muro<br /></span></a>
<span class="pnormal" id="count"></span>
<br />
<div class="bar"></div>
<div id="wall"></div>
<div class="bar"></div>
<div>
<p class="powered">Powered by</p>
<p><img src="./img/logomanzolo.jpg" alt=""/></p>
<p class="poweredby">Manzolo</p>
</div>
</div>
</div>
<script type="module" src="./muro.js"></script>
</body>
</html>
+162
View File
@@ -0,0 +1,162 @@
{
"smiles": {
"[13_grin]": "13_grin.gif",
"[14_bigmouth]": "14_bigmouth.gif",
"[15_weeping]": "15_weeping.gif",
"[16_angry]": "16_angry.gif",
"[17_wink]": "17_wink.gif",
"[1_grin]": "1_grin.gif",
"[20_grumpy]": "20_grumpy.gif",
"[21_irked]": "21_irked.gif",
"[22_yikes]": "22_yikes.gif",
"[24_shocked]": "24_shocked.gif",
"[8-)]": "25_coolguy.gif",
"[28_spin]": "28_spin.gif",
"[ambulance]": "ambulance.gif",
"[banghead]": "banghead.gif",
"[beret]": "beret.gif",
"[bouncer]": "bouncer.gif",
"[bowtie]": "bowtie.gif",
"[detective]": "detective.gif",
"[duh2]": "duh2.gif",
"[fryingpan]": "fryingpan.gif",
"[highfive]": "highfive.gif",
"[paperbag]": "paperbag.gif",
"[shocking]": "shocking.gif",
"[simpsonhomer]": "simpsonhomer.gif",
"[splat]": "splat.gif",
"[surfing]": "surfing.gif",
"[thumbsup2]": "thumbsup2.gif",
"[tombstone]": "tombstone.gif",
"[trophy]": "trophy.gif",
"[user]": "user.gif",
"[vader2]": "vader2.gif",
"[wave2]": "wave2.gif",
"[weightlifter]": "weightlifter.gif",
"[wonderwoman]": "wonderwoman.gif",
"[yipes]": "yipes.gif",
"[pampa]": "pampa.gif"
},
"messages": [
{
"nick": "WWW.SANPIERO50037.IT X IL SOCIALE",
"date": "2007-11-14 22:48:20",
"text": "<br>"
},
{
"nick": "Porc@ontha$..!",
"date": "2007-11-14 22:24:36",
"text": "Eccomi anche io a sverginare il nuovo muro...[1_grin]"
},
{
"nick": "Baron De Duke",
"date": "2007-11-14 21:14:31",
"text": "<font color=#0000FF>X BANTU\r\nL'INDIRIZZO E-MAIL INSERITO NON E' VALIDO, PER CORTESIA CONTATTAMI VIA E-MAIL. GRAZIE</font>"
},
{
"nick": "Megy",
"date": "2007-11-14 19:04:25",
"text": "Ieri ed oggi,con la Ferrari è andato in pista un ragazzo di 38 anni,tedesco...dice prometta bene!!![15_weeping]"
},
{
"nick": "?",
"date": "2007-11-14 18:49:21",
"text": "Il problema del Reconquista è che non la buttano dentro nemmeno con le mani...tanto l'importante è divertirsi e che nessuno si faccia del male.[ambulance]"
},
{
"nick": "tetsuyaharada",
"date": "2007-11-14 17:37:19",
"text": "glazie pel il nuovo mulo"
},
{
"nick": "manutd",
"date": "2007-11-14 16:50:29",
"text": "bravi ragazzi ottimo lavoro ci si deve sempre un po rompere le [bouncer][bouncer]però poi le cose vengon fuori [28_spin][28_spin][28_spin]"
},
{
"nick": "fraus",
"date": "2007-11-14 14:59:18",
"text": "Mariolino Sindaco![1_grin]"
},
{
"nick": "TeoNick",
"date": "2007-11-14 14:37:34",
"text": "Ma che tipo di Mariolino sei?"
},
{
"nick": "Mariolino for President",
"date": "2007-11-14 12:04:12",
"text": "[14_bigmouth] effettivamente ci sarebbe da infamare, ma dato che vu siete voi che correte in campo lasciamo fare, se vi piace così!\r\nVolevo dire soltanto che quello che manca, non è il gioco, il fiato la panchina ecc ecc ecc, ma l'attaccamento alla maglia, mi parete un pò carenti di grinta, nessuno letica con nessuno, il piedino si tira sempre indietro (e non dite che il giorno dopo c'è da andà a lavorare che la un regge)ma soprattutto NESSUNO DICE NULLA ALL'ARBITRO, volete mettere le leticate di Manolo con conseguenti espulsioni? superiori.\r\nIn conclusione, va bene così, basta che vu vi diverta, ma dubito che il risultato non vi scossi! SEMPRE E COMUNQUE FORZA RECONQUISTA"
},
{
"nick": "Reconquista",
"date": "2007-11-14 10:34:48",
"text": "Ovvia...su con le infamate!!!ce le meritiamo...[16_angry][16_angry][16_angry]"
},
{
"nick": "pizzu",
"date": "2007-11-14 10:21:32",
"text": "Finalmente il nuovo muro da imbrattare!! Complimenti per l'ottimo lavoro a Barone e Manzolo! [8-)]"
},
{
"nick": "Mariolino for President",
"date": "2007-11-14 08:51:48",
"text": "[22_yikes] MA CHE NEVA IN MONTAGNA?[17_wink]\r\nPENSIERO DEL MATTINO:\r\n\"Meglio vivere con due pensioni oggi, che con una soltanto domani\""
},
{
"nick": "TeoNick",
"date": "2007-11-14 00:41:57",
"text": "Buonasera Muraioli! Ho un questito: è sempre censurato faenza? su quello vecchio UN si poteva [22_yikes][22_yikes][22_yikes][22_yikes][22_yikes]\r\n[yipes][wave2]\r\n\r\nP.s. Mariolino chi? secondo me l'è lui l'untore!![bouncer][bouncer]"
},
{
"nick": "Baron De Duke",
"date": "2007-11-14 00:32:47",
"text": "NONOSTANTE QUALCHE INGEGNOSO IMPAZIENTE... [simpsonhomer] ECCO A VOI IL \"NUOVO MURO DEL SANPIERINO\"!!![banghead]\r\n\r\nAVANTI CON GLI SPRAY!!!! [beret][splat][thumbsup2][wave2]"
},
{
"nick": "Manzolo (Welcome to the real world)",
"date": "2007-11-14 00:32:12",
"text": "Ci siamo!!!!\r\nCari paesani e non, il nuovo muro è online!!!\r\nOgni vostro suggerimento sarà prezioso per migliorare questo nostro spazio che da oggi perde la sua \"staticità\" [tombstone] ...\r\nFacciamolo crescere con idee e critiche...\r\nYour potential. Our passion!\r\n\r\nANDIAMO A PRENDERCI LA [trophy]\r\n\r\nIl presidente [surfing]\r\n\r\nP.s. sconfitta e sculo (per) ora si possono scrivere [24_shocked]"
},
{
"nick": "Cecchino",
"date": "2007-11-14 00:31:58",
"text": "Grandi ragazzi!! Manzolo ora ricordati che c'è da fissare la vacanza rider!! Pampa quest'anno ti svernicio!!"
},
{
"nick": "?",
"date": "2007-11-13 23:19:45",
"text": "Reconquista...datevi foco!!![22_yikes]"
},
{
"nick": "coccinella",
"date": "2007-11-13 22:21:52",
"text": "buona idea questo nuovo muro, complimenti a gabry e al manzolo che si sono impegnati a rendere un po di vita a questo muro. ciao ciao"
},
{
"nick": "Mariolino for President",
"date": "2007-11-13 17:04:04",
"text": "ma funziono?[22_yikes]"
},
{
"nick": "m.d.b.",
"date": "2007-11-13 10:24:51",
"text": "ovvia....m'è riuscito entrare....grande barone e grande manzolo, vediamo se ora si ripiglia ivvia con questo nuovo metodo!!!!\r\ndomenica s'è beccato, mi sa che sono io che porto s c u l o!"
},
{
"nick": "Mariolino for President",
"date": "2007-11-13 09:23:34",
"text": "in attesa di nuove [16_angry]auguro allo staff buon lavoro ed un felice anno nuovo[22_yikes] fose sono un pò prematuro[24_shocked][15_weeping][13_grin][14_bigmouth][17_wink][21_irked][20_grumpy][pampa][pampa][wonderwoman][wonderwoman][weightlifter][shocking][fryingpan][duh2][detective]"
},
{
"nick": "Kiara",
"date": "2007-11-10 21:51:53",
"text": "CIAO MURO!COMPLIMENTI agli autori, barone e manzolo.... è stato uno sporco lavoro ma qualcuno lo doveva pur fare....[8-)]"
},
{
"nick": "Manzolo e Baron De Duke [surfing]",
"date": "2007-11-10 19:22:23",
"text": "IL DADO E' TRATTO!!! [highfive]<br>Finalmente possiamo presentarvi il rinnovato \"MURO DEL SANPIERINO\"! [8-)]<br>Da oggi i messaggi andranno nuovamente On-Line istantaneamente... l'unica cosa che vi chiediamo è una piccola iscrizione. [bowtie]<br>Facciamo presente che l'anonimato rimarrà garantito, unica eccezione sarà fatta quando i messaggi avranno contenuti in disaccordo con le condizioni espresse in fase di registrazione. Potrete consultare i casi nella pagina \"Responsabilità\" che troverete qui sopra. [paperbag]<br>Speriamo che il nostro lavoro sia di vostro gradimento e rimaniamo in attesa dei numerosi nuovi messaggi!!! [user]<br>The Wall is come back... Nothing is Impossible!!! [vader2]"
}
]
}
+31
View File
@@ -0,0 +1,31 @@
body {text-align:center;margin:0 auto;padding:0px;background-color:#F7E1C0;font: 20px Arial; color: #800000; font-weight: bold; font-style: normal; text-decoration: none;}
.pagerbutton { text-align: center; padding:2px; border:1px solid #191E66;font:12px verdana,arial,helvetica;background-color: #DBE0F5;cursor:pointer; color: #191E66; }
.pagerbutton_over { background-color: #F2F4FA; color: #A1A1A1; }
.pagerbutton_disabled { cursor: default; padding:2px; color: #aaaaaa;}
.response { font: 14px Tahoma; color: #800000; font-weight: bold; font-style: italic; text-decoration: none; }
.title {font: 30px Tahoma; color: #800000; font-weight: bold; font-style: normal; text-decoration: none;}
.text { font: 20px Arial; color: #800000; font-weight: bold; font-style: normal; text-decoration: none; }
.question { font: 14px Tahoma; color: #002288; font-weight: bold; font-style: normal; text-decoration: none; }
.name { font: 24px Tahoma; color: #800000; font-weight: bold; font-style: normal; text-decoration: none; }
a { font: 12px Tahoma; color: #800000; font-weight: normal; font-style: normal; text-decoration: none; }
a:visited { font: 12px Tahoma; color: #800000; font-weight: normal; font-style: normal; text-decoration: none; }
a:hover { font: 12px Tahoma; color: #800000; font-weight: normal; font-style: normal; text-decoration: none; }
.divcenter {margin-right:auto;margin-left:auto;width:87%}
.pblue {font: 18px Tahoma; color: #0000A0;font-weight: bold;}
.pred {font: 18px Tahoma; color: #FF0000;font-weight: bold;}
.pblack {font: 18px Tahoma; color: #000000;font-weight: bold;}
.pnormal {font: 12px Tahoma; color: #800000;font-weight: bold;}
.powered {font: 12px Tahoma; color: #800000;font-weight: bold;}
.poweredby {font: 18px Tahoma; color: #800000;font-weight: bold;}
.spacer {border-top: 3px dotted #800000; margin-top: 10px; margin-bottom: 0px}
.td30 {width:30%}
.td70 {width:70%;text-align:right}
.tdcenter {text-align:center}
.imgnoborder {border:0px;}
.imgbar {border:0px;vertical-align:middle;}
+56
View File
@@ -0,0 +1,56 @@
// Il Muro del Sanpierino nel telefonino del Barone: rifà quello che facevano thewall.php, drawbar.php,
// getsmile.php e messagebody.php. I messaggi del gioco (story.closeups.muro_sanpierino.messages) stanno in cima,
// quelli che valgono adesso (ognuno col suo `when`); sotto i messaggi veri del 2007. «Aggiorna» ricarica la pagina:
// se nel frattempo la storia è andata avanti, compaiono i messaggi nuovi.
import { check } from '../../src/engine/game.js';
const PER_PAGE = 50;
const game = (() => { try { return parent.game; } catch { return null; } })();
const def = game?.story.closeups.muro_sanpierino;
const { smiles, messages: real } = await (await fetch('./messaggi.json')).json();
const ours = (def?.messages ?? []).filter(m => check(m.when, game.state)).sort((a, b) => b.date.localeCompare(a.date));
const all = [...ours, ...real];
const from = Math.max(0, Number(new URLSearchParams(location.search).get('pag')) || 0);
// Gli smile come li metteva getsmile.php, e gli a capo.
const smile = text => Object.entries(smiles).reduce((t, [code, link]) => t.split(code).join(`&nbsp;<img src="./img/${link}" alt="" />`), text);
const body = m => smile(m.text).replace(/\r\n|\r|\n/g, '<br />');
const when = d => { const [day, hour] = d.split(' '), [y, mo, dd] = day.split('-'); return `${dd}/${mo}/${y}<br />${hour}`; };
document.getElementById('count').textContent = `(Messaggi lasciati sul muro: ${all.length})`;
document.getElementById('wall').innerHTML = all.slice(from, from + PER_PAGE).map(m => `
<p class="spacer"><img src="./img/spacer.gif" alt="" /></p>
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="padding:5px;">
<tr><td class="td30"><div class="question"></div></td><td class="td70"><div class="text">${when(m.date)}</div></td></tr>
<tr><td align="left"><div class="question">Chi Sei?&nbsp;&nbsp;</div><br /></td><td align="left"><div class="name"> ${smile(m.nick)}</div><br /></td></tr>
<tr><td align="left" valign="top"><div class="question">Messaggio&nbsp;&nbsp;</div><br /></td><td align="left"><div class="response"><p>${body(m)}</p><br /><br /></div></td></tr>
</table>`).join('');
// La barra coi pulsanti (drawbar.php): Inizio e Precedente spenti sulla prima pagina, Successiva e Ultima
// sull'ultima; «Scrivi» sempre spento.
const page = n => `./index.html${n > 0 ? '?pag=' + n : ''}`, last = Math.max(0, Math.floor((all.length - 1) / PER_PAGE) * PER_PAGE);
const buttons = [
['Inizio', 'pagefirst.gif', from > 0 && (() => location.href = page(0)), true],
['Precedente', 'pageback.gif', from > 0 && (() => location.href = page(from - PER_PAGE)), true],
['SCRIVI', 'postmessage.gif', null, true],
['Aggiorna', 'refresh.gif', () => location.reload(), true],
['Home', 'home.gif', () => game?.closeupHome(), true],
['Successiva', 'pageahead.gif', from < last && (() => location.href = page(from + PER_PAGE)), false],
['Ultima', 'pagelast.gif', from < last && (() => location.href = page(last)), false],
];
for (const bar of document.querySelectorAll('.bar')) {
const table = document.createElement('table'), tr = table.insertRow();
Object.assign(table, { width: '100%', border: 0, cellPadding: 0, cellSpacing: 5 });
for (const [label, icon, go, before] of buttons) {
const div = tr.insertCell().appendChild(document.createElement('div')), img = `<img class="imgbar" src="./img/${icon}" alt="" />`;
div.className = 'pagerbutton' + (go ? '' : ' pagerbutton_disabled');
div.innerHTML = before ? `${img}&nbsp;&nbsp;${label}` : `${label}&nbsp;&nbsp;${img}`;
if (go) {
div.onmouseover = () => { div.className = 'pagerbutton pagerbutton_over'; };
div.onmouseout = () => { div.className = 'pagerbutton'; };
div.onclick = go;
}
}
bar.replaceWith(table);
}
document.getElementById('logo').onclick = e => { e.preventDefault(); game?.closeupHome(); };
Binary file not shown.

After

Width:  |  Height:  |  Size: 382 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 286 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 292 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 205 KiB

Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More