-
Notifications
You must be signed in to change notification settings - Fork 0
Event Loc 02 Tundara
Navigation: Home - Wiki - Event Loc 02 Tundara
-
event.dat offset
0x000D15, length 1465 bytes - Map: map screen 2; Tundara
-
Record kind:
standard - Triggers: 69; script segments: 55; strings: 27
| Tile (y,x) | pos | Event | Condition |
|---|---|---|---|
| (0,5) | 0x05 |
33 | DIR_E? |
| (1,3) | 0x13 |
31 | DIR_N? |
| (1,5) | 0x15 |
31 | DIR_N? |
| (1,7) | 0x17 |
31 | DIR_N? |
| (1,9) | 0x19 |
31 | DIR_N? |
| (1,11) | 0x1B |
31 | DIR_N? |
| (1,13) | 0x1D |
31 | DIR_N? |
| (2,2) | 0x22 |
34 | ANY_DIR |
| (2,3) | 0x23 |
35 | ANY_DIR |
| (2,4) | 0x24 |
36 | ANY_DIR |
| (2,5) | 0x25 |
37 | ANY_DIR |
| (2,6) | 0x26 |
38 | ANY_DIR |
| (2,7) | 0x27 |
39 | ANY_DIR |
| (2,8) | 0x28 |
40 | ANY_DIR |
| (2,9) | 0x29 |
41 | ANY_DIR |
| (2,10) | 0x2A |
42 | ANY_DIR |
| (2,11) | 0x2B |
43 | ANY_DIR |
| (2,12) | 0x2C |
44 | ANY_DIR |
| (2,13) | 0x2D |
45 | ANY_DIR |
| (3,0) | 0x30 |
33 | DIR_S? |
| (3,2) | 0x32 |
31 | DIR_S? |
| (3,4) | 0x34 |
31 | DIR_S? |
| (3,6) | 0x36 |
31 | DIR_S? |
| (3,8) | 0x38 |
31 | DIR_S? |
| (3,10) | 0x3A |
31 | DIR_S? |
| (3,12) | 0x3C |
31 | DIR_S? |
| (3,15) | 0x3F |
33 | DIR_N? |
| (4,13) | 0x4D |
51 | DIR_S? |
| (5,3) | 0x53 |
29 | ANY_DIR |
| (6,7) | 0x67 |
21 | 0x60 |
| (6,11) | 0x6B |
16 | DIR_S? |
| (7,2) | 0x72 |
32 | DIR_W? |
| (7,9) | 0x79 |
50 | DIR_S? |
| (7,11) | 0x7B |
5 | DIR_S? |
| (7,14) | 0x7E |
27 | ANY_DIR |
| (8,6) | 0x86 |
6 | DIR_N? |
| (8,8) | 0x88 |
52 | 0x30 |
| (8,15) | 0x8F |
28 | ANY_DIR |
| (9,3) | 0x93 |
47 | ANY_DIR |
| (9,4) | 0x94 |
48 | ANY_DIR |
| (9,6) | 0x96 |
18 | DIR_N? |
| (9,7) | 0x97 |
14 | DIR_W? |
| (9,8) | 0x98 |
2 | DIR_W? |
| (9,13) | 0x9D |
53 | 0xA0 |
| (9,15) | 0x9F |
26 | 0xA0 |
| (10,0) | 0xA0 |
33 | DIR_S? |
| (10,3) | 0xA3 |
46 | ANY_DIR |
| (10,4) | 0xA4 |
49 | ANY_DIR |
| (10,6) | 0xA6 |
7 | DIR_N? |
| (10,10) | 0xAA |
3 | DIR_E? |
| (10,11) | 0xAB |
12 | DIR_E? |
| (10,15) | 0xAF |
25 | DIR_N? |
| (11,6) | 0xB6 |
19 | DIR_N? |
| (11,7) | 0xB7 |
15 | DIR_W? |
| (11,8) | 0xB8 |
1 | DIR_W? |
| (11,15) | 0xBF |
20 | DIR_E? |
| (12,5) | 0xC5 |
10 | DIR_N? |
| (12,11) | 0xCB |
4 | DIR_N? |
| (12,15) | 0xCF |
30 | DIR_S? |
| (13,5) | 0xD5 |
23 | DIR_N? |
| (13,8) | 0xD8 |
24 | DIR_S? |
| (13,11) | 0xDB |
13 | DIR_N? |
| (13,14) | 0xDE |
17 | DIR_S? |
| (14,2) | 0xE2 |
22 | DIR_W? |
| (14,3) | 0xE3 |
9 | DIR_W? |
| (14,8) | 0xE8 |
11 | DIR_S? |
| (14,14) | 0xEE |
8 | DIR_S? |
| (15,4) | 0xF4 |
33 | DIR_W? |
| (15,12) | 0xFC |
33 | DIR_W? |
Event 01 — triggers: (11,8)/DIR_W?
04 01
00: show_text_above_door(str[1] "Tundaran Arms Inn")
Event 02 — triggers: (9,8)/DIR_W?
04 02
00: show_text_above_door(str[2] "Lucky Dog Saloon")
Event 03 — triggers: (10,10)/DIR_E?
04 03
00: show_text_above_door(str[3] "Thundrax Weaponry")
Event 04 — triggers: (12,11)/DIR_N?
04 04
00: show_text_above_door(str[4] "White Dove Temple")
Event 05 — triggers: (7,11)/DIR_S?
04 05
00: show_text_above_door(str[5] "Enhancement Center")
Event 06 — triggers: (8,6)/DIR_N?
04 06
00: show_text_above_door(str[6] "Polar Passage Portal")
Event 07 — triggers: (10,6)/DIR_N?
04 07
00: show_text_above_door(str[7] "La Porte")
Event 08 — triggers: (14,14)/DIR_S?
04 08
00: show_text_above_door(str[8] "Mystical Mage Guild")
Event 09 — triggers: (14,3)/DIR_W?
04 09
00: show_text_above_door(str[9] "Saracen's Denial")
Event 10 — triggers: (12,5)/DIR_N?
04 0a
00: show_text_above_door(str[10] "International Market")
Event 11 — triggers: (14,8)/DIR_S?
04 0b
00: show_text_above_door(str[11] "Columbus's Sextant")
Event 12 — triggers: (10,11)/DIR_E?
0b 02 00 0e 06
00: service_sign(idx=0x02 -> sign 62 [62.anm], pos=0x00)
01: exec_selector(0x06) # open_blacksmith_shop
Event 13 — triggers: (13,11)/DIR_N?
0b 05 00 0e 04
00: service_sign(idx=0x05 -> sign 67 [67.anm], pos=0x00)
01: exec_selector(0x04) # open_temple
Event 14 — triggers: (9,7)/DIR_W?
0b 04 00 0e 03
00: service_sign(idx=0x04 -> sign 66 [66.anm], pos=0x00)
01: exec_selector(0x03) # open_tavern_food
Event 15 — triggers: (11,7)/DIR_W?
0b 03 00 0e 01
00: service_sign(idx=0x03 -> sign 63 [63.anm], pos=0x00)
01: exec_selector(0x01) # open_inn_lodging
Event 16 — triggers: (6,11)/DIR_S?
0b 06 00 0e 02
00: service_sign(idx=0x06 -> sign 68 [68.anm], pos=0x00)
01: exec_selector(0x02) # open_training
Event 17 — triggers: (13,14)/DIR_S?
0b 14 00 0e 05
00: service_sign(idx=0x14 -> sign 37 [37.anm], pos=0x00)
01: exec_selector(0x05) # open_mages_guild
Event 18 — triggers: (9,6)/DIR_N?
02 0c 09 10 01 0f 24 32 00 11 01 0c 03 36 01 12 29
00: show_text_block(str[12] "A talkative polar bear sells passage / to Vulcania for 50 gold. Travel (")
01: cond = prompt_yes_no()
02: if cond: skip_tokens(1)
# skip -> cond = check_gold_at_least(50)
03: end_script()
04: cond = check_gold_at_least(50)
05: if not cond: skip_tokens(1)
# skip -> show_text_basic(str[18] "Not enough gold!")
06: map_transition(0x03, 0x36)
07: show_text_basic(str[18] "Not enough gold!")
08: set_abort_and_exit()
Event 19 — triggers: (11,6)/DIR_N?
02 0d 09 10 01 0f 24 0a 00 11 01 0c 04 f4 01 12 29
00: show_text_block(str[13] ""I am Jean-Luc. Energize you to / Sandsobar for 10 gold (y/n)?"")
01: cond = prompt_yes_no()
02: if cond: skip_tokens(1)
# skip -> cond = check_gold_at_least(10)
03: end_script()
04: cond = check_gold_at_least(10)
05: if not cond: skip_tokens(1)
# skip -> show_text_basic(str[18] "Not enough gold!")
06: map_transition(0x04, 0xF4)
07: show_text_basic(str[18] "Not enough gold!")
08: set_abort_and_exit()
Event 20 — triggers: (11,15)/DIR_E?
02 0e 09 10 01 0f 0c 05 3c
00: show_text_block(str[14] "A pathway leads to the snowdrift. / Exit (y/n)?")
01: cond = prompt_yes_no()
02: if cond: skip_tokens(1)
# skip -> map_transition(0x05, 0x3C)
03: end_script()
04: map_transition(0x05, 0x3C)
Event 21 — triggers: (6,7)/0x60
01 0f 09 10 01 0f 0c 13 1e
00: show_text_basic(str[15] "Stairs to Cavern. Descend (y/n)?")
01: cond = prompt_yes_no()
02: if cond: skip_tokens(1)
# skip -> map_transition(0x13, 0x1E)
03: end_script()
04: map_transition(0x13, 0x1E)
Event 22 — triggers: (14,2)/DIR_W?
02 10 09 10 01 0f 02 11 26 15 09 6d 0f 10 04 24 fa 00 11 0a 18 09 6d f0 04 0f 15 09 6d f0 10 04 24 fa 00 11 04 18 09 6d 0f 40 0f 01 13 29 01 12 29
00: show_text_block(str[16] "An armed priest shouts, "Fight for the / cause!" Pay 250 gold to crusade")
01: cond = prompt_yes_no()
02: if cond: skip_tokens(1)
# skip -> show_text_block(str[17] "Who will learn this skill (1-8)?")
03: end_script()
04: show_text_block(str[17] "Who will learn this skill (1-8)?")
05: selected = select_party_member()
06: apply_party(count=0x09, op=0x6D, val=0x0F)
07: if cond: skip_tokens(4)
# skip -> apply_party(count=0x09, op=0x6D, val=0xF0)
08: cond = check_gold_at_least(250)
09: if not cond: skip_tokens(10)
# skip -> show_text_basic(str[18] "Not enough gold!")
10: apply_party_masked(count=0x09, set=0x6D, and=0xF0, or=0x04)
11: end_script()
12: apply_party(count=0x09, op=0x6D, val=0xF0)
13: if cond: skip_tokens(4)
# skip -> show_text_basic(str[19] "You already have two skills!")
14: cond = check_gold_at_least(250)
15: if not cond: skip_tokens(4)
# skip -> show_text_basic(str[18] "Not enough gold!")
16: apply_party_masked(count=0x09, set=0x6D, and=0x0F, or=0x40)
17: end_script()
18: show_text_basic(str[19] "You already have two skills!")
19: set_abort_and_exit()
20: show_text_basic(str[18] "Not enough gold!")
21: set_abort_and_exit()
Event 23 — triggers: (13,5)/DIR_N?
02 14 09 10 01 0f 02 11 26 15 09 6d 0f 10 04 24 e8 03 11 0a 18 09 6d f0 0a 0f 15 09 6d f0 10 04 24 e8 03 11 04 18 09 6d 0f a0 0f 01 13 29 01 12 29
00: show_text_block(str[20] "Don't ya want to haggle? Pay 1000 gold / to become a merchant (y/n)?")
01: cond = prompt_yes_no()
02: if cond: skip_tokens(1)
# skip -> show_text_block(str[17] "Who will learn this skill (1-8)?")
03: end_script()
04: show_text_block(str[17] "Who will learn this skill (1-8)?")
05: selected = select_party_member()
06: apply_party(count=0x09, op=0x6D, val=0x0F)
07: if cond: skip_tokens(4)
# skip -> apply_party(count=0x09, op=0x6D, val=0xF0)
08: cond = check_gold_at_least(1000)
09: if not cond: skip_tokens(10)
# skip -> show_text_basic(str[18] "Not enough gold!")
10: apply_party_masked(count=0x09, set=0x6D, and=0xF0, or=0x0A)
11: end_script()
12: apply_party(count=0x09, op=0x6D, val=0xF0)
13: if cond: skip_tokens(4)
# skip -> show_text_basic(str[19] "You already have two skills!")
14: cond = check_gold_at_least(1000)
15: if not cond: skip_tokens(4)
# skip -> show_text_basic(str[18] "Not enough gold!")
16: apply_party_masked(count=0x09, set=0x6D, and=0x0F, or=0xA0)
17: end_script()
18: show_text_basic(str[19] "You already have two skills!")
19: set_abort_and_exit()
20: show_text_basic(str[18] "Not enough gold!")
21: set_abort_and_exit()
Event 24 — triggers: (13,8)/DIR_S?
0e 38
00: exec_selector(0x38)
Event 25 — triggers: (10,15)/DIR_N?
17 09 00 11 01 14 0e 39
00: cond = load_var8(group=0x09, index=0x00)
01: if not cond: skip_tokens(1)
# skip -> exec_selector(0x39)
02: clear_current_tile_event_flag()
03: exec_selector(0x39)
Event 26 — triggers: (9,15)/0xA0
16 01 e6 10 01 0e 3a 14
00: cond = check_monster_present(0x01, 0xE6)
01: if cond: skip_tokens(1)
# skip -> clear_current_tile_event_flag()
02: exec_selector(0x3A)
03: clear_current_tile_event_flag()
Event 27 — triggers: (7,14)/ANY_DIR
28 01 e6 11 01 0e 3b 0f
00: cond = consume_item(item_id=230, name="Emerald Ring", probe=1)
01: if not cond: skip_tokens(1)
# skip -> end_script()
02: exec_selector(0x3B)
03: end_script()
Event 28 — triggers: (8,15)/ANY_DIR
2b 01 12 eb eb eb eb eb eb eb eb 00 00 00 00 2a 10 27 00 00 00 00 00 00 00 00 00 00 00 00 14
00: skip_tokens(1)
# skip -> set_treasure(gold/exp=10000, gems=0, items=[0, 0, 0])
01: encounter_setup(monsters=EB EB EB EB EB EB EB EB 00 00, flags=00 00)
02: set_treasure(gold/exp=10000, gems=0, items=[0, 0, 0])
03: clear_current_tile_event_flag()
Event 29 — triggers: (5,3)/ANY_DIR
15 00 7b 80 10 01 0f 0e 37
00: apply_party(count=0x00, op=0x7B, val=0x80)
01: if cond: skip_tokens(1)
# skip -> exec_selector(0x37)
02: end_script()
03: exec_selector(0x37)
Event 30 — triggers: (12,15)/DIR_S?
02 16 09 10 01 0f 01 18 0d 00 21 7f 11 32 29
00: show_text_block(str[22] "A large button protrudes from the / wall. Push it (y/n)?")
01: cond = prompt_yes_no()
02: if cond: skip_tokens(1)
# skip -> show_text_basic(str[24] "Click!")
03: end_script()
04: show_text_basic(str[24] "Click!")
05: engine_call(0x00)
06: set_tile((y=7,x=15), 0x11, 0x32)
07: set_abort_and_exit()
Event 31 — triggers: (1,3)/DIR_N?, (1,5)/DIR_N?, (1,7)/DIR_N?, (1,9)/DIR_N?, (1,11)/DIR_N?, (1,13)/DIR_N?, (3,2)/DIR_S?, (3,4)/DIR_S?, (3,6)/DIR_S?, (3,8)/DIR_S?, (3,10)/DIR_S?, (3,12)/DIR_S?
04 15
00: show_text_above_door(str[21] "Frozen Monster")
Event 32 — triggers: (7,2)/DIR_W?
05 17
00: show_text_popup_style_a(str[23] "Monster Freezing / Authorized Personnel / Only!")
Event 33 — triggers: (0,5)/DIR_E?, (3,0)/DIR_S?, (3,15)/DIR_N?, (10,0)/DIR_S?, (15,4)/DIR_W?, (15,12)/DIR_W?
2b 01 0e 0c 14
00: skip_tokens(1)
# skip -> clear_current_tile_event_flag()
01: exec_selector(0x0C)
02: clear_current_tile_event_flag()
Event 34 — triggers: (2,2)/ANY_DIR
2b 01 0e 0f 14
00: skip_tokens(1)
# skip -> clear_current_tile_event_flag()
01: exec_selector(0x0F)
02: clear_current_tile_event_flag()
Event 35 — triggers: (2,3)/ANY_DIR
2b 01 0e 34 14
00: skip_tokens(1)
# skip -> clear_current_tile_event_flag()
01: exec_selector(0x34)
02: clear_current_tile_event_flag()
Event 36 — triggers: (2,4)/ANY_DIR
2b 01 0e 26 14
00: skip_tokens(1)
# skip -> clear_current_tile_event_flag()
01: exec_selector(0x26)
02: clear_current_tile_event_flag()
Event 37 — triggers: (2,5)/ANY_DIR
2b 01 0e 2a 14
00: skip_tokens(1)
# skip -> clear_current_tile_event_flag()
01: exec_selector(0x2A)
02: clear_current_tile_event_flag()
Event 38 — triggers: (2,6)/ANY_DIR
2b 01 0e 2b 14
00: skip_tokens(1)
# skip -> clear_current_tile_event_flag()
01: exec_selector(0x2B)
02: clear_current_tile_event_flag()
Event 39 — triggers: (2,7)/ANY_DIR
2b 01 0e 2c 14
00: skip_tokens(1)
# skip -> clear_current_tile_event_flag()
01: exec_selector(0x2C)
02: clear_current_tile_event_flag()
Event 40 — triggers: (2,8)/ANY_DIR
2b 01 0e 2d 14
00: skip_tokens(1)
# skip -> clear_current_tile_event_flag()
01: exec_selector(0x2D)
02: clear_current_tile_event_flag()
Event 41 — triggers: (2,9)/ANY_DIR
2b 01 0e 14 14
00: skip_tokens(1)
# skip -> clear_current_tile_event_flag()
01: exec_selector(0x14)
02: clear_current_tile_event_flag()
Event 42 — triggers: (2,10)/ANY_DIR
2b 01 0e 2e 14
00: skip_tokens(1)
# skip -> clear_current_tile_event_flag()
01: exec_selector(0x2E)
02: clear_current_tile_event_flag()
Event 43 — triggers: (2,11)/ANY_DIR
2b 01 0e 2f 14
00: skip_tokens(1)
# skip -> clear_current_tile_event_flag()
01: exec_selector(0x2F)
02: clear_current_tile_event_flag()
Event 44 — triggers: (2,12)/ANY_DIR
2b 01 0e 30 14
00: skip_tokens(1)
# skip -> clear_current_tile_event_flag()
01: exec_selector(0x30)
02: clear_current_tile_event_flag()
Event 45 — triggers: (2,13)/ANY_DIR
2b 01 0e 31 14
00: skip_tokens(1)
# skip -> clear_current_tile_event_flag()
01: exec_selector(0x31)
02: clear_current_tile_event_flag()
Event 46 — triggers: (10,3)/ANY_DIR
2b 01 0e 32 14
00: skip_tokens(1)
# skip -> clear_current_tile_event_flag()
01: exec_selector(0x32)
02: clear_current_tile_event_flag()
Event 47 — triggers: (9,3)/ANY_DIR
2b 01 0e 33 14
00: skip_tokens(1)
# skip -> clear_current_tile_event_flag()
01: exec_selector(0x33)
02: clear_current_tile_event_flag()
Event 48 — triggers: (9,4)/ANY_DIR
2b 01 0e 35 14
00: skip_tokens(1)
# skip -> clear_current_tile_event_flag()
01: exec_selector(0x35)
02: clear_current_tile_event_flag()
Event 49 — triggers: (10,4)/ANY_DIR
2b 01 0e 36 14
00: skip_tokens(1)
# skip -> clear_current_tile_event_flag()
01: exec_selector(0x36)
02: clear_current_tile_event_flag()
Event 50 — triggers: (7,9)/DIR_S?
0b 14 00 0e 50
00: service_sign(idx=0x14 -> sign 37 [37.anm], pos=0x00)
01: exec_selector(0x50)
Event 51 — triggers: (4,13)/DIR_S?
05 19
00: show_text_popup_style_a(str[25] "MISSING / Old Hanna / Last seen / wearing an / Emerald Ring")
Event 52 — triggers: (8,8)/0x30
0e 3c
00: exec_selector(0x3C)
Event 53 — triggers: (9,13)/0xA0
0b 0e 00 0e 3d
00: service_sign(idx=0x0E -> sign 12 [12.anm], pos=0x00)
01: exec_selector(0x3D)
-
[00] -
[01]Tundaran Arms Inn -
[02]Lucky Dog Saloon -
[03]Thundrax Weaponry -
[04]White Dove Temple -
[05]Enhancement Center -
[06]Polar Passage Portal -
[07]La Porte -
[08]Mystical Mage Guild -
[09]Saracen's Denial -
[10]International Market -
[11]Columbus's Sextant -
[12]A talkative polar bear sells passage / to Vulcania for 50 gold. Travel (y/n)? -
[13]"I am Jean-Luc. Energize you to / Sandsobar for 10 gold (y/n)?" -
[14]A pathway leads to the snowdrift. / Exit (y/n)? -
[15]Stairs to Cavern. Descend (y/n)? -
[16]An armed priest shouts, "Fight for the / cause!" Pay 250 gold to crusade (y/n)? -
[17]Who will learn this skill (1-8)? -
[18]Not enough gold! -
[19]You already have two skills! -
[20]Don't ya want to haggle? Pay 1000 gold / to become a merchant (y/n)? -
[21]Frozen Monster -
[22]A large button protrudes from the / wall. Push it (y/n)? -
[23]Monster Freezing / Authorized Personnel / Only! -
[24]Click! -
[25]MISSING / Old Hanna / Last seen / wearing an / Emerald Ring -
[26]
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