Skip to content

Event Loc 56 Woodhaven

Vairn edited this page Jun 29, 2026 · 1 revision

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 triggers

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

Events

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)

String table

  • [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.

🏠 Home


Getting started

Runtime & engine

Graphics

UI

Data formats (.dat)

Combat

Audio

Game systems

Might and Magic I (DOS)

Gallery

Tools

Clone this wiki locally