-
Notifications
You must be signed in to change notification settings - Fork 0
Event Loc 56 Woodhaven
Navigation: Home - Wiki - Event Loc 56 Woodhaven
-
event.dat offset
0x011816, length 1405 bytes - Map: map screen 56; Woodhaven
-
Record kind:
standard - Triggers: 129; script segments: 26; strings: 23
| Tile (y,x) | pos | Event | Condition |
|---|---|---|---|
| (0,2) | 0x02 |
12 | ANY_DIR |
| (0,3) | 0x03 |
11 | DIR_W? |
| (0,4) | 0x04 |
16 | ANY_DIR |
| (0,7) | 0x07 |
7 | DIR_S? |
| (0,8) | 0x08 |
7 | DIR_S? |
| (0,12) | 0x0C |
11 | DIR_E? |
| (0,13) | 0x0D |
12 | ANY_DIR |
| (1,1) | 0x11 |
13 | ANY_DIR |
| (1,3) | 0x13 |
14 | ANY_DIR |
| (1,4) | 0x14 |
13 | ANY_DIR |
| (1,5) | 0x15 |
14 | ANY_DIR |
| (1,7) | 0x17 |
16 | ANY_DIR |
| (1,8) | 0x18 |
16 | ANY_DIR |
| (1,10) | 0x1A |
19 | ANY_DIR |
| (1,11) | 0x1B |
20 | ANY_DIR |
| (1,12) | 0x1C |
21 | ANY_DIR |
| (1,14) | 0x1E |
13 | ANY_DIR |
| (2,0) | 0x20 |
12 | ANY_DIR |
| (2,3) | 0x23 |
14 | ANY_DIR |
| (2,4) | 0x24 |
14 | ANY_DIR |
| (2,5) | 0x25 |
14 | ANY_DIR |
| (2,7) | 0x27 |
1 | DIR_N? |
| (2,8) | 0x28 |
2 | DIR_N? |
| (2,10) | 0x2A |
18 | ANY_DIR |
| (2,11) | 0x2B |
18 | ANY_DIR |
| (2,12) | 0x2C |
18 | ANY_DIR |
| (2,13) | 0x2D |
24 | 0x90 |
| (2,15) | 0x2F |
12 | ANY_DIR |
| (3,0) | 0x30 |
11 | DIR_S? |
| (3,1) | 0x31 |
14 | ANY_DIR |
| (3,3) | 0x33 |
14 | ANY_DIR |
| (3,4) | 0x34 |
14 | ANY_DIR |
| (3,5) | 0x35 |
13 | ANY_DIR |
| (3,6) | 0x36 |
16 | ANY_DIR |
| (3,7) | 0x37 |
12 | ANY_DIR |
| (3,12) | 0x3C |
18 | ANY_DIR |
| (3,13) | 0x3D |
18 | ANY_DIR |
| (3,14) | 0x3E |
19 | ANY_DIR |
| (3,15) | 0x3F |
11 | DIR_S? |
| (4,1) | 0x41 |
14 | ANY_DIR |
| (4,6) | 0x46 |
14 | ANY_DIR |
| (4,7) | 0x47 |
16 | ANY_DIR |
| (4,9) | 0x49 |
14 | ANY_DIR |
| (4,10) | 0x4A |
5 | DIR_E? |
| (4,14) | 0x4E |
19 | ANY_DIR |
| (5,1) | 0x51 |
14 | ANY_DIR |
| (5,3) | 0x53 |
14 | ANY_DIR |
| (5,4) | 0x54 |
12 | ANY_DIR |
| (5,5) | 0x55 |
14 | ANY_DIR |
| (5,7) | 0x57 |
13 | ANY_DIR |
| (5,9) | 0x59 |
16 | ANY_DIR |
| (5,11) | 0x5B |
18 | ANY_DIR |
| (5,12) | 0x5C |
18 | ANY_DIR |
| (5,14) | 0x5E |
19 | ANY_DIR |
| (6,1) | 0x61 |
14 | ANY_DIR |
| (6,3) | 0x63 |
14 | ANY_DIR |
| (6,4) | 0x64 |
12 | ANY_DIR |
| (6,5) | 0x65 |
14 | ANY_DIR |
| (6,7) | 0x67 |
14 | ANY_DIR |
| (6,8) | 0x68 |
9 | DIR_S? |
| (6,9) | 0x69 |
23 | DIR_N? |
| (6,10) | 0x6A |
17 | DIR_S? |
| (6,11) | 0x6B |
18 | ANY_DIR |
| (6,12) | 0x6C |
19 | ANY_DIR |
| (6,14) | 0x6E |
20 | ANY_DIR |
| (7,1) | 0x71 |
14 | ANY_DIR |
| (7,11) | 0x7B |
19 | ANY_DIR |
| (7,12) | 0x7C |
19 | ANY_DIR |
| (7,14) | 0x7E |
20 | ANY_DIR |
| (8,1) | 0x81 |
12 | ANY_DIR |
| (8,2) | 0x82 |
14 | ANY_DIR |
| (8,3) | 0x83 |
14 | ANY_DIR |
| (8,4) | 0x84 |
14 | ANY_DIR |
| (8,5) | 0x85 |
14 | ANY_DIR |
| (8,6) | 0x86 |
14 | ANY_DIR |
| (8,7) | 0x87 |
14 | ANY_DIR |
| (8,8) | 0x88 |
12 | ANY_DIR |
| (8,10) | 0x8A |
4 | DIR_S? |
| (8,12) | 0x8C |
18 | ANY_DIR |
| (9,3) | 0x93 |
19 | DIR_S? |
| (9,5) | 0x95 |
18 | DIR_S? |
| (9,9) | 0x99 |
16 | ANY_DIR |
| (9,11) | 0x9B |
6 | DIR_E? |
| (9,12) | 0x9C |
19 | ANY_DIR |
| (9,13) | 0x9D |
21 | DIR_W? |
| (10,7) | 0xA7 |
19 | DIR_E? |
| (10,9) | 0xA9 |
3 | DIR_N? |
| (10,12) | 0xAC |
20 | ANY_DIR |
| (10,13) | 0xAD |
19 | ANY_DIR |
| (11,2) | 0xB2 |
10 | DIR_W? |
| (11,4) | 0xB4 |
21 | DIR_W? |
| (11,9) | 0xB9 |
8 | DIR_N? |
| (11,12) | 0xBC |
18 | ANY_DIR |
| (11,13) | 0xBD |
18 | ANY_DIR |
| (12,0) | 0xC0 |
11 | DIR_N? |
| (12,6) | 0xC6 |
20 | DIR_N? |
| (12,7) | 0xC7 |
16 | ANY_DIR |
| (12,11) | 0xCB |
16 | ANY_DIR |
| (12,12) | 0xCC |
22 | ANY_DIR |
| (12,13) | 0xCD |
18 | ANY_DIR |
| (12,15) | 0xCF |
11 | DIR_N? |
| (13,0) | 0xD0 |
12 | ANY_DIR |
| (13,3) | 0xD3 |
15 | ANY_DIR |
| (13,4) | 0xD4 |
15 | ANY_DIR |
| (13,5) | 0xD5 |
15 | ANY_DIR |
| (13,6) | 0xD6 |
15 | ANY_DIR |
| (13,7) | 0xD7 |
12 | ANY_DIR |
| (13,8) | 0xD8 |
15 | ANY_DIR |
| (13,9) | 0xD9 |
15 | ANY_DIR |
| (13,10) | 0xDA |
15 | ANY_DIR |
| (13,11) | 0xDB |
12 | ANY_DIR |
| (13,12) | 0xDC |
15 | ANY_DIR |
| (13,15) | 0xDF |
12 | ANY_DIR |
| (14,1) | 0xE1 |
13 | ANY_DIR |
| (14,3) | 0xE3 |
15 | ANY_DIR |
| (14,4) | 0xE4 |
15 | ANY_DIR |
| (14,5) | 0xE5 |
15 | ANY_DIR |
| (14,6) | 0xE6 |
15 | ANY_DIR |
| (14,7) | 0xE7 |
16 | ANY_DIR |
| (14,8) | 0xE8 |
16 | ANY_DIR |
| (14,9) | 0xE9 |
15 | ANY_DIR |
| (14,10) | 0xEA |
15 | ANY_DIR |
| (14,11) | 0xEB |
16 | ANY_DIR |
| (14,12) | 0xEC |
15 | ANY_DIR |
| (14,14) | 0xEE |
13 | ANY_DIR |
| (15,2) | 0xF2 |
12 | ANY_DIR |
| (15,3) | 0xF3 |
11 | DIR_W? |
| (15,12) | 0xFC |
11 | DIR_E? |
| (15,13) | 0xFD |
12 | ANY_DIR |
Event 01 — triggers: (2,7)/DIR_N?
04 01
00: show_text_above_door(str[1] "No Entry")
Event 02 — triggers: (2,8)/DIR_N?
04 02
00: show_text_above_door(str[2] "Hoardall's Palace")
Event 03 — triggers: (10,9)/DIR_N?
04 03
00: show_text_above_door(str[3] "Throne Room")
Event 04 — triggers: (8,10)/DIR_S?
04 04
00: show_text_above_door(str[4] "Green Room")
Event 05 — triggers: (4,10)/DIR_E?
04 05
00: show_text_above_door(str[5] "Grand Hall")
Event 06 — triggers: (9,11)/DIR_E?
01 07 09 11 01 0c 2f f0 0f
00: show_text_basic(str[7] "Stairs to Dungeon. Descend (y/n)?")
01: cond = prompt_yes_no()
02: if not cond: skip_tokens(1)
# skip -> end_script()
03: map_transition(0x2F, 0xF0)
04: end_script()
Event 07 — triggers: (0,7)/DIR_S?, (0,8)/DIR_S?
01 08 09 11 02 18 00 7d ef 00 0c 07 e3 0f
00: show_text_basic(str[8] "Castle Exit. Leave (y/n)?")
01: cond = prompt_yes_no()
02: if not cond: skip_tokens(2)
# skip -> end_script()
03: apply_party_masked(count=0x00, set=0x7D, and=0xEF, or=0x00)
04: map_transition(0x07, 0xE3)
05: end_script()
Event 08 — triggers: (11,9)/DIR_N?
0b 0e 00 32 04 11 01 0e c9 02 14 08 0f
00: service_sign(idx=0x0E -> sign 49 [49.anm], pos=0x00)
01: cond = load_cond_from_var(0x04)
02: if not cond: skip_tokens(1)
# skip -> show_text_block(str[20] "Lord Hoardall proclaims, "Only a / Crusader can help me with my never / ")
03: exec_selector(0xC9) # quest_handler_201
04: show_text_block(str[20] "Lord Hoardall proclaims, "Only a / Crusader can help me with my never / ")
05: wait_key()
06: end_script()
Event 09 — triggers: (6,8)/DIR_S?
02 0b 09 11 01 18 00 42 00 28 0f
00: show_text_block(str[11] "A heavy oak table holds a lavish meal. / Fill your backpacks with food (")
01: cond = prompt_yes_no()
02: if not cond: skip_tokens(1)
# skip -> end_script()
03: apply_party_masked(count=0x00, set=0x42, and=0x00, or=0x28)
04: end_script()
Event 10 — triggers: (11,2)/DIR_W?
02 0c 09 10 01 0f 02 0d 19 01 fc 00 00 10 01 01 06 07 14
00: show_text_block(str[12] "You notice a gleaming, long metal / object stuck in a crack in the wall.")
01: cond = prompt_yes_no()
02: if cond: skip_tokens(1)
# skip -> show_text_block(str[13] "After removing the object and cleaning / it off, you notice the inscript")
03: end_script()
04: show_text_block(str[13] "After removing the object and cleaning / it off, you notice the inscript")
05: add_party_entity(0x01, f3a=0xFC, f40=0x00, f46=0x00)
06: if cond: skip_tokens(1)
# skip -> wait_for_space()
07: show_text_basic(str[6] "*** Backpacks Full ***")
08: wait_for_space()
09: clear_current_tile_event_flag()
Event 11 — triggers: (0,3)/DIR_W?, (0,12)/DIR_E?, (3,0)/DIR_S?, (3,15)/DIR_S?, (12,0)/DIR_N?, (12,15)/DIR_N?, (15,3)/DIR_W?, (15,12)/DIR_E?
04 0e
00: show_text_above_door(str[14] "Guard Tower")
Event 12 — triggers: (0,2)/ANY_DIR, (0,13)/ANY_DIR, (2,0)/ANY_DIR, (2,15)/ANY_DIR, (3,7)/ANY_DIR, (5,4)/ANY_DIR, (6,4)/ANY_DIR, (8,1)/ANY_DIR, (8,8)/ANY_DIR, (13,0)/ANY_DIR, (13,7)/ANY_DIR, (13,11)/ANY_DIR, (13,15)/ANY_DIR, (15,2)/ANY_DIR, (15,13)/ANY_DIR
2b 01 12 69 69 69 69 69 69 00 00 00 00 00 00 14
00: skip_tokens(1)
# skip -> clear_current_tile_event_flag()
01: encounter_setup(monsters=69 69 69 69 69 69 00 00 00 00, flags=00 00)
02: clear_current_tile_event_flag()
Event 13 — triggers: (1,1)/ANY_DIR, (1,4)/ANY_DIR, (1,14)/ANY_DIR, (3,5)/ANY_DIR, (5,7)/ANY_DIR, (14,1)/ANY_DIR, (14,14)/ANY_DIR
2b 01 12 69 69 69 69 69 69 69 69 69 69 00 00 14
00: skip_tokens(1)
# skip -> clear_current_tile_event_flag()
01: encounter_setup(monsters=69 69 69 69 69 69 69 69 69 69, flags=00 00)
02: clear_current_tile_event_flag()
Event 14 — triggers: (1,3)/ANY_DIR, (1,5)/ANY_DIR, (2,3)/ANY_DIR, (2,4)/ANY_DIR, (2,5)/ANY_DIR, (3,1)/ANY_DIR, (3,3)/ANY_DIR, (3,4)/ANY_DIR, (4,1)/ANY_DIR, (4,6)/ANY_DIR, (4,9)/ANY_DIR, (5,1)/ANY_DIR, (5,3)/ANY_DIR, (5,5)/ANY_DIR, (6,1)/ANY_DIR, (6,3)/ANY_DIR, (6,5)/ANY_DIR, (6,7)/ANY_DIR, (7,1)/ANY_DIR, (8,2)/ANY_DIR, (8,3)/ANY_DIR, (8,4)/ANY_DIR, (8,5)/ANY_DIR, (8,6)/ANY_DIR, (8,7)/ANY_DIR
0b 01 00 01 0f 0a 11 05 01 09 2a f4 01 00 00 00 00 00 00 00 00 00 00 00 00 08 18 00 7d ef 10 14 0f
00: service_sign(idx=0x01 -> sign 1 [1.anm], pos=0x00)
01: show_text_basic(str[15] "Take castle treasure (y/n)?")
02: cond = prompt_yes_no(mode=1)
03: if not cond: skip_tokens(5)
# skip -> end_script()
04: show_text_basic(str[9] "Seek and ye shall find!")
05: set_treasure(gold/exp=500, gems=0, items=[0, 0, 0])
06: wait_key()
07: apply_party_masked(count=0x00, set=0x7D, and=0xEF, or=0x10)
08: clear_current_tile_event_flag()
09: end_script()
Event 15 — triggers: (13,3)/ANY_DIR, (13,4)/ANY_DIR, (13,5)/ANY_DIR, (13,6)/ANY_DIR, (13,8)/ANY_DIR, (13,9)/ANY_DIR, (13,10)/ANY_DIR, (13,12)/ANY_DIR, (14,3)/ANY_DIR, (14,4)/ANY_DIR, (14,5)/ANY_DIR, (14,6)/ANY_DIR, (14,9)/ANY_DIR, (14,10)/ANY_DIR, (14,12)/ANY_DIR
0b 01 00 01 0f 0a 11 05 01 09 2a 88 13 00 00 00 00 00 00 00 00 00 00 00 00 08 18 00 7d ef 10 14 0f
00: service_sign(idx=0x01 -> sign 1 [1.anm], pos=0x00)
01: show_text_basic(str[15] "Take castle treasure (y/n)?")
02: cond = prompt_yes_no(mode=1)
03: if not cond: skip_tokens(5)
# skip -> end_script()
04: show_text_basic(str[9] "Seek and ye shall find!")
05: set_treasure(gold/exp=5000, gems=0, items=[0, 0, 0])
06: wait_key()
07: apply_party_masked(count=0x00, set=0x7D, and=0xEF, or=0x10)
08: clear_current_tile_event_flag()
09: end_script()
Event 16 — triggers: (0,4)/ANY_DIR, (1,7)/ANY_DIR, (1,8)/ANY_DIR, (3,6)/ANY_DIR, (4,7)/ANY_DIR, (5,9)/ANY_DIR, (9,9)/ANY_DIR, (12,7)/ANY_DIR, (12,11)/ANY_DIR, (14,7)/ANY_DIR, (14,8)/ANY_DIR, (14,11)/ANY_DIR
2b 04 15 00 7d 10 11 02 02 10 12 a2 a2 a2 00 00 00 00 00 00 00 00 00 14
00: skip_tokens(4)
# skip -> clear_current_tile_event_flag()
01: apply_party(count=0x00, op=0x7D, val=0x10)
02: if not cond: skip_tokens(2)
# skip -> clear_current_tile_event_flag()
03: show_text_block(str[16] "Castle guards yell, "Stop thieves!"")
04: encounter_setup(monsters=A2 A2 A2 00 00 00 00 00 00 00, flags=00 00)
05: clear_current_tile_event_flag()
Event 17 — triggers: (6,10)/DIR_S?
0b 05 00 0e f7
00: service_sign(idx=0x05 -> sign 72 [72.anm], pos=0x00)
01: exec_selector(0xF7)
Event 18 — triggers: (2,10)/ANY_DIR, (2,11)/ANY_DIR, (2,12)/ANY_DIR, (3,12)/ANY_DIR, (3,13)/ANY_DIR, (5,11)/ANY_DIR, (5,12)/ANY_DIR, (6,11)/ANY_DIR, (8,12)/ANY_DIR, (9,5)/DIR_S?, (11,12)/ANY_DIR, (11,13)/ANY_DIR, (12,13)/ANY_DIR
02 13 09 11 04 19 01 03 00 00 10 02 01 06 07 0f
00: show_text_block(str[19] "Mounds of stuff clutter the floor. / Grab an item (y/n)?")
01: cond = prompt_yes_no()
02: if not cond: skip_tokens(4)
# skip -> end_script()
03: add_party_entity(0x01, f3a=0x03, f40=0x00, f46=0x00)
04: if cond: skip_tokens(2)
# skip -> end_script()
05: show_text_basic(str[6] "*** Backpacks Full ***")
06: wait_for_space()
07: end_script()
Event 19 — triggers: (1,10)/ANY_DIR, (3,14)/ANY_DIR, (4,14)/ANY_DIR, (5,14)/ANY_DIR, (6,12)/ANY_DIR, (7,11)/ANY_DIR, (7,12)/ANY_DIR, (9,3)/DIR_S?, (9,12)/ANY_DIR, (10,7)/DIR_E?, (10,13)/ANY_DIR
02 13 09 11 04 19 00 da 00 00 10 02 01 06 07 0f
00: show_text_block(str[19] "Mounds of stuff clutter the floor. / Grab an item (y/n)?")
01: cond = prompt_yes_no()
02: if not cond: skip_tokens(4)
# skip -> end_script()
03: add_party_entity(0x00, f3a=0xDA, f40=0x00, f46=0x00)
04: if cond: skip_tokens(2)
# skip -> end_script()
05: show_text_basic(str[6] "*** Backpacks Full ***")
06: wait_for_space()
07: end_script()
Event 20 — triggers: (1,11)/ANY_DIR, (6,14)/ANY_DIR, (7,14)/ANY_DIR, (10,12)/ANY_DIR, (12,6)/DIR_N?
02 13 09 11 04 19 00 a4 00 00 10 02 01 06 07 0f
00: show_text_block(str[19] "Mounds of stuff clutter the floor. / Grab an item (y/n)?")
01: cond = prompt_yes_no()
02: if not cond: skip_tokens(4)
# skip -> end_script()
03: add_party_entity(0x00, f3a=0xA4, f40=0x00, f46=0x00)
04: if cond: skip_tokens(2)
# skip -> end_script()
05: show_text_basic(str[6] "*** Backpacks Full ***")
06: wait_for_space()
07: end_script()
Event 21 — triggers: (1,12)/ANY_DIR, (9,13)/DIR_W?, (11,4)/DIR_W?
02 13 09 11 04 19 00 a1 00 00 10 02 01 06 07 0f
00: show_text_block(str[19] "Mounds of stuff clutter the floor. / Grab an item (y/n)?")
01: cond = prompt_yes_no()
02: if not cond: skip_tokens(4)
# skip -> end_script()
03: add_party_entity(0x00, f3a=0xA1, f40=0x00, f46=0x00)
04: if cond: skip_tokens(2)
# skip -> end_script()
05: show_text_basic(str[6] "*** Backpacks Full ***")
06: wait_for_space()
07: end_script()
Event 22 — triggers: (12,12)/ANY_DIR
02 13 09 11 04 19 00 d3 00 00 10 02 01 06 07 0f
00: show_text_block(str[19] "Mounds of stuff clutter the floor. / Grab an item (y/n)?")
01: cond = prompt_yes_no()
02: if not cond: skip_tokens(4)
# skip -> end_script()
03: add_party_entity(0x00, f3a=0xD3, f40=0x00, f46=0x00)
04: if cond: skip_tokens(2)
# skip -> end_script()
05: show_text_basic(str[6] "*** Backpacks Full ***")
06: wait_for_space()
07: end_script()
Event 23 — triggers: (6,9)/DIR_N?
0b 0d 00 01 0a 0e e2
00: service_sign(idx=0x0D -> sign 5 [5.anm], pos=0x00)
01: show_text_basic(str[10] "Here's the joke of the day:")
02: exec_selector(0xE2) # special_226
Event 24 — triggers: (2,13)/0x90
0e fb
00: exec_selector(0xFB)
-
[00] -
[01]No Entry -
[02]Hoardall's Palace -
[03]Throne Room -
[04]Green Room -
[05]Grand Hall -
[06]*** Backpacks Full *** -
[07]Stairs to Dungeon. Descend (y/n)? -
[08]Castle Exit. Leave (y/n)? -
[09]Seek and ye shall find! -
[10]Here's the joke of the day: -
[11]A heavy oak table holds a lavish meal. / Fill your backpacks with food (y/n)? -
[12]You notice a gleaming, long metal / object stuck in a crack in the wall. / Pry it loose (y/n)? -
[13]After removing the object and cleaning / it off, you notice the inscription / "M-27 Radicon". -
[14]Guard Tower -
[15]Take castle treasure (y/n)? -
[16]Castle guards yell, "Stop thieves!" -
[17]T -
[18]T -
[19]Mounds of stuff clutter the floor. / Grab an item (y/n)? -
[20]Lord Hoardall proclaims, "Only a / Crusader can help me with my never / ending need to accumulate stuff!" -
[21]A -
[22]
Generated by tools/build_event_location_docs.py from event.dat. Decoder: tools/decode_event.py.
- Docs Wiki Hub ← full doc index
- Getting Started ← read this first
- Overview
- Workspace Notes
- Open Questions
- Full Analysis
- Game Remake
- Startup and Init
- Runtime Memory Map
- Main Loop and Map
- Exploration Input and Options
- Party and Session
- Game State Struct
- Data Hunk mm2 data 00
- Time Era Calendar
- GFX Loading
- ANM TV Format
- PC DOS graphics
- SNES graphics
- 3D View and Game Screen
- Amiga 3D Render Process
- Scripted Scene Graphics
- Event Graphics Opcodes
- Title Screen Assets
- Title Screen Animation
- Format inventory
- items.dat
- monsters.dat
- roster.dat
- attrib.dat
- map.dat
- spells & item use
- event.dat
- Events by location ← 71 maps
- Events hub (numbered)
- Event Script Opcodes
-
Event Script DSL ←
.mm2evtauthoring - Event Text Rendering
- Event Graphics Opcodes
- Combat Overview
- Combat System
- Encounter Tables
- Spell Cast ASM
- monsters.dat abilities
- Spells and item use
- Town Services
- Spell Sources
- Character Mechanics
- Skills and Hirelings
- Commerce Formulas
- Commerce World Services
- Mount Farview Class Quest
- Class Quest HP Bug
- Event Runtime
- Event to String Path
- Embedded Exe Strings
- Copy Protection
- Time Era Calendar
- Game State Struct
- MM1 Overview ← hub + decode status
- MM1 MAZEDATA format
- MM1 to MM2 outdoor
- MM1 WALLPIX by sector
- MM1 art & graphics
- MM1 items / monsters (status)
- MM1 map walker ↗
- MM1 2D maps gallery
- MM1 WALLPIX gallery