summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorElectroDeoxys <ElectroDeoxys@gmail.com>2021-02-20 00:12:28 +0000
committerElectroDeoxys <ElectroDeoxys@gmail.com>2021-02-20 00:12:28 +0000
commit2c41ada0776025dfc2ed8e7f3c2962d3d2fe129c (patch)
treee5efd35ede76d12f3294ca011ccceb094040a992 /src
parentb1bd405470fd89ee9a2d085c61a834b7de252a31 (diff)
Map event tilemaps
Diffstat (limited to 'src')
-rw-r--r--src/constants/map_constants.asm14
-rw-r--r--src/constants/tilemap_constants.asm212
-rw-r--r--src/engine/bank03.asm36
-rw-r--r--src/engine/bank04.asm2
-rw-r--r--src/engine/bank07.asm2
-rw-r--r--src/engine/bank20.asm100
-rw-r--r--src/macros/scripts.asm1
-rw-r--r--src/sram.asm4
-rw-r--r--src/wram.asm10
9 files changed, 201 insertions, 180 deletions
diff --git a/src/constants/map_constants.asm b/src/constants/map_constants.asm
index be5ee7d..a2654f8 100644
--- a/src/constants/map_constants.asm
+++ b/src/constants/map_constants.asm
@@ -78,3 +78,17 @@ MAP_SCRIPT_CLOSE_TEXTBOX EQU $0e
const MAP_SGB_PALS_8 ; $8
const MAP_SGB_PALS_9 ; $9
const MAP_SGB_PALS_10 ; $a
+
+ const_def 0
+ const MAP_EVENT_POKEMON_DOME_DOOR ; $0
+ const MAP_EVENT_HALL_OF_HONOR_DOOR ; $1
+ const MAP_EVENT_FIGHTING_DECK_MACHINE ; $2
+ const MAP_EVENT_ROCK_DECK_MACHINE ; $3
+ const MAP_EVENT_WATER_DECK_MACHINE ; $4
+ const MAP_EVENT_LIGHTNING_DECK_MACHINE ; $5
+ const MAP_EVENT_GRASS_DECK_MACHINE ; $6
+ const MAP_EVENT_PSYCHIC_DECK_MACHINE ; $7
+ const MAP_EVENT_SCIENCE_DECK_MACHINE ; $8
+ const MAP_EVENT_FIRE_DECK_MACHINE ; $9
+ const MAP_EVENT_CHALLENGE_MACHINE ; $a
+NUM_MAP_EVENTS EQU const_value
diff --git a/src/constants/tilemap_constants.asm b/src/constants/tilemap_constants.asm
index 4a64930..a3a1538 100644
--- a/src/constants/tilemap_constants.asm
+++ b/src/constants/tilemap_constants.asm
@@ -1,107 +1,107 @@
const_def
- const TILEMAP_OVERWORLD_MAP ; $00
- const TILEMAP_OVERWORLD_MAP_CGB ; $01
- const TILEMAP_MASON_LABORATORY ; $02
- const TILEMAP_MASON_LABORATORY_CGB ; $03
- const TILEMAP_UNKNOWN_1 ; $04
- const TILEMAP_UNKNOWN_1_CGB ; $05
- const TILEMAP_DECK_MACHINE_ROOM ; $06
- const TILEMAP_DECK_MACHINE_ROOM_CGB ; $07
- const TILEMAP_UNKNOWN_2 ; $08
- const TILEMAP_UNKNOWN_2_CGB ; $09
- const TILEMAP_ISHIHARA ; $0a
- const TILEMAP_ISHIHARA_CGB ; $0b
- const TILEMAP_FIGHTING_CLUB_ENTRANCE ; $0c
- const TILEMAP_FIGHTING_CLUB_ENTRANCE_CGB ; $0d
- const TILEMAP_ROCK_CLUB_ENTRANCE ; $0e
- const TILEMAP_ROCK_CLUB_ENTRANCE_CGB ; $0f
- const TILEMAP_WATER_CLUB_ENTRANCE ; $10
- const TILEMAP_WATER_CLUB_ENTRANCE_CGB ; $11
- const TILEMAP_LIGHTNING_CLUB_ENTRANCE ; $12
- const TILEMAP_LIGHTNING_CLUB_ENTRANCE_CGB ; $13
- const TILEMAP_GRASS_CLUB_ENTRANCE ; $14
- const TILEMAP_GRASS_CLUB_ENTRANCE_CGB ; $15
- const TILEMAP_PSYCHIC_CLUB_ENTRANCE ; $16
- const TILEMAP_PSYCHIC_CLUB_ENTRANCE_CGB ; $17
- const TILEMAP_SCIENCE_CLUB_ENTRANCE ; $18
- const TILEMAP_SCIENCE_CLUB_ENTRANCE_CGB ; $19
- const TILEMAP_FIRE_CLUB_ENTRANCE ; $1a
- const TILEMAP_FIRE_CLUB_ENTRANCE_CGB ; $1b
- const TILEMAP_CHALLENGE_HALL_ENTRANCE ; $1c
- const TILEMAP_CHALLENGE_HALL_ENTRANCE_CGB ; $1d
- const TILEMAP_CLUB_LOBBY ; $1e
- const TILEMAP_CLUB_LOBBY_CGB ; $1f
- const TILEMAP_FIGHTING_CLUB ; $20
- const TILEMAP_FIGHTING_CLUB_CGB ; $21
- const TILEMAP_ROCK_CLUB ; $22
- const TILEMAP_ROCK_CLUB_CGB ; $23
- const TILEMAP_WATER_CLUB ; $24
- const TILEMAP_WATER_CLUB_CGB ; $25
- const TILEMAP_LIGHTNING_CLUB ; $26
- const TILEMAP_LIGHTNING_CLUB_CGB ; $27
- const TILEMAP_GRASS_CLUB ; $28
- const TILEMAP_GRASS_CLUB_CGB ; $29
- const TILEMAP_PSYCHIC_CLUB ; $2a
- const TILEMAP_PSYCHIC_CLUB_CGB ; $2b
- const TILEMAP_SCIENCE_CLUB ; $2c
- const TILEMAP_SCIENCE_CLUB_CGB ; $2d
- const TILEMAP_FIRE_CLUB ; $2e
- const TILEMAP_FIRE_CLUB_CGB ; $2f
- const TILEMAP_CHALLENGE_HALL ; $30
- const TILEMAP_CHALLENGE_HALL_CGB ; $31
- const TILEMAP_POKEMON_DOME_ENTRANCE ; $32
- const TILEMAP_POKEMON_DOME_ENTRANCE_CGB ; $33
- const TILEMAP_UNKNOWN_3 ; $34
- const TILEMAP_UNKNOWN_3_CGB ; $35
- const TILEMAP_POKEMON_DOME ; $36
- const TILEMAP_POKEMON_DOME_CGB ; $37
- const TILEMAP_UNKNOWN_4 ; $38
- const TILEMAP_UNKNOWN_4_CGB ; $39
- const TILEMAP_HALL_OF_HONOR ; $3a
- const TILEMAP_HALL_OF_HONOR_CGB ; $3b
- const TILEMAP_CARD_POP_CGB ; $3c
- const TILEMAP_CARD_POP ; $3d
- const TILEMAP_GRASS_MEDAL ; $3e
- const TILEMAP_SCIENCE_MEDAL ; $3f
- const TILEMAP_FIRE_MEDAL ; $40
- const TILEMAP_WATER_MEDAL ; $41
- const TILEMAP_LIGHTNING_MEDAL ; $42
- const TILEMAP_FIGHTING_MEDAL ; $43
- const TILEMAP_ROCK_MEDAL ; $44
- const TILEMAP_PSYCHIC_MEDAL ; $45
- const TILEMAP_GAMEBOY_LINK_CGB ; $46
- const TILEMAP_GAMEBOY_LINK ; $47
- const TILEMAP_GAMEBOY_LINK_CONNECTING_CGB ; $48
- const TILEMAP_GAMEBOY_LINK_CONNECTING ; $49
- const TILEMAP_GAMEBOY_PRINTER_CGB ; $4a
- const TILEMAP_GAMEBOY_PRINTER ; $4b
- const TILEMAP_COLOSSEUM ; $4c
- const TILEMAP_COLOSSEUM_CGB ; $4d
- const TILEMAP_EVOLUTION ; $4e
- const TILEMAP_EVOLUTION_CGB ; $4f
- const TILEMAP_MYSTERY ; $50
- const TILEMAP_MYSTERY_CGB ; $51
- const TILEMAP_LABORATORY ; $52
- const TILEMAP_LABORATORY_CGB ; $53
- const TILEMAP_CHARIZARD_INTRO ; $54
- const TILEMAP_CHARIZARD_INTRO_CGB ; $55
- const TILEMAP_SCYTHER_INTRO ; $56
- const TILEMAP_SCYTHER_INTRO_CGB ; $57
- const TILEMAP_AERODACTYL_INTRO ; $58
- const TILEMAP_AERODACTYL_INTRO_CGB ; $59
- const TILEMAP_JAPANESE_TITLE_SCREEN ; $5a
- const TILEMAP_JAPANESE_TITLE_SCREEN_CGB ; $5b
- const TILEMAP_SOLID_TILES_1 ; $5c
- const TILEMAP_SOLID_TILES_2 ; $5d
- const TILEMAP_SOLID_TILES_3 ; $5e
- const TILEMAP_JAPANESE_TITLE_SCREEN_2 ; $5f
- const TILEMAP_JAPANESE_TITLE_SCREEN_2_CGB ; $60
- const TILEMAP_SOLID_TILES_4 ; $61
- const TILEMAP_PLAYER ; $62
- const TILEMAP_OPPONENT ; $63
- const TILEMAP_TITLE_SCREEN ; $64
- const TILEMAP_TITLE_SCREEN_CGB ; $65
- const TILEMAP_COPYRIGHT ; $66
- const TILEMAP_COPYRIGHT_CGB ; $67
- const TILEMAP_NINTENDO ; $68
- const TILEMAP_COMPANIES ; $69
+ const TILEMAP_OVERWORLD_MAP ; $00
+ const TILEMAP_OVERWORLD_MAP_CGB ; $01
+ const TILEMAP_MASON_LABORATORY ; $02
+ const TILEMAP_MASON_LABORATORY_CGB ; $03
+ const TILEMAP_CHALLENGE_MACHINE_MAP_EVENT ; $04
+ const TILEMAP_CHALLENGE_MACHINE_MAP_EVENT_CGB ; $05
+ const TILEMAP_DECK_MACHINE_ROOM ; $06
+ const TILEMAP_DECK_MACHINE_ROOM_CGB ; $07
+ const TILEMAP_DECK_MACHINE_MAP_EVENT ; $08
+ const TILEMAP_DECK_MACHINE_MAP_EVENT_CGB ; $09
+ const TILEMAP_ISHIHARA ; $0a
+ const TILEMAP_ISHIHARA_CGB ; $0b
+ const TILEMAP_FIGHTING_CLUB_ENTRANCE ; $0c
+ const TILEMAP_FIGHTING_CLUB_ENTRANCE_CGB ; $0d
+ const TILEMAP_ROCK_CLUB_ENTRANCE ; $0e
+ const TILEMAP_ROCK_CLUB_ENTRANCE_CGB ; $0f
+ const TILEMAP_WATER_CLUB_ENTRANCE ; $10
+ const TILEMAP_WATER_CLUB_ENTRANCE_CGB ; $11
+ const TILEMAP_LIGHTNING_CLUB_ENTRANCE ; $12
+ const TILEMAP_LIGHTNING_CLUB_ENTRANCE_CGB ; $13
+ const TILEMAP_GRASS_CLUB_ENTRANCE ; $14
+ const TILEMAP_GRASS_CLUB_ENTRANCE_CGB ; $15
+ const TILEMAP_PSYCHIC_CLUB_ENTRANCE ; $16
+ const TILEMAP_PSYCHIC_CLUB_ENTRANCE_CGB ; $17
+ const TILEMAP_SCIENCE_CLUB_ENTRANCE ; $18
+ const TILEMAP_SCIENCE_CLUB_ENTRANCE_CGB ; $19
+ const TILEMAP_FIRE_CLUB_ENTRANCE ; $1a
+ const TILEMAP_FIRE_CLUB_ENTRANCE_CGB ; $1b
+ const TILEMAP_CHALLENGE_HALL_ENTRANCE ; $1c
+ const TILEMAP_CHALLENGE_HALL_ENTRANCE_CGB ; $1d
+ const TILEMAP_CLUB_LOBBY ; $1e
+ const TILEMAP_CLUB_LOBBY_CGB ; $1f
+ const TILEMAP_FIGHTING_CLUB ; $20
+ const TILEMAP_FIGHTING_CLUB_CGB ; $21
+ const TILEMAP_ROCK_CLUB ; $22
+ const TILEMAP_ROCK_CLUB_CGB ; $23
+ const TILEMAP_WATER_CLUB ; $24
+ const TILEMAP_WATER_CLUB_CGB ; $25
+ const TILEMAP_LIGHTNING_CLUB ; $26
+ const TILEMAP_LIGHTNING_CLUB_CGB ; $27
+ const TILEMAP_GRASS_CLUB ; $28
+ const TILEMAP_GRASS_CLUB_CGB ; $29
+ const TILEMAP_PSYCHIC_CLUB ; $2a
+ const TILEMAP_PSYCHIC_CLUB_CGB ; $2b
+ const TILEMAP_SCIENCE_CLUB ; $2c
+ const TILEMAP_SCIENCE_CLUB_CGB ; $2d
+ const TILEMAP_FIRE_CLUB ; $2e
+ const TILEMAP_FIRE_CLUB_CGB ; $2f
+ const TILEMAP_CHALLENGE_HALL ; $30
+ const TILEMAP_CHALLENGE_HALL_CGB ; $31
+ const TILEMAP_POKEMON_DOME_ENTRANCE ; $32
+ const TILEMAP_POKEMON_DOME_ENTRANCE_CGB ; $33
+ const TILEMAP_POKEMON_DOME_DOOR_MAP_EVENT ; $34
+ const TILEMAP_POKEMON_DOME_DOOR_MAP_EVENT_CGB ; $35
+ const TILEMAP_POKEMON_DOME ; $36
+ const TILEMAP_POKEMON_DOME_CGB ; $37
+ const TILEMAP_HALL_OF_HONOR_DOOR_MAP_EVENT ; $38
+ const TILEMAP_HALL_OF_HONOR_DOOR_MAP_EVENT_CGB ; $39
+ const TILEMAP_HALL_OF_HONOR ; $3a
+ const TILEMAP_HALL_OF_HONOR_CGB ; $3b
+ const TILEMAP_CARD_POP_CGB ; $3c
+ const TILEMAP_CARD_POP ; $3d
+ const TILEMAP_GRASS_MEDAL ; $3e
+ const TILEMAP_SCIENCE_MEDAL ; $3f
+ const TILEMAP_FIRE_MEDAL ; $40
+ const TILEMAP_WATER_MEDAL ; $41
+ const TILEMAP_LIGHTNING_MEDAL ; $42
+ const TILEMAP_FIGHTING_MEDAL ; $43
+ const TILEMAP_ROCK_MEDAL ; $44
+ const TILEMAP_PSYCHIC_MEDAL ; $45
+ const TILEMAP_GAMEBOY_LINK_CGB ; $46
+ const TILEMAP_GAMEBOY_LINK ; $47
+ const TILEMAP_GAMEBOY_LINK_CONNECTING_CGB ; $48
+ const TILEMAP_GAMEBOY_LINK_CONNECTING ; $49
+ const TILEMAP_GAMEBOY_PRINTER_CGB ; $4a
+ const TILEMAP_GAMEBOY_PRINTER ; $4b
+ const TILEMAP_COLOSSEUM ; $4c
+ const TILEMAP_COLOSSEUM_CGB ; $4d
+ const TILEMAP_EVOLUTION ; $4e
+ const TILEMAP_EVOLUTION_CGB ; $4f
+ const TILEMAP_MYSTERY ; $50
+ const TILEMAP_MYSTERY_CGB ; $51
+ const TILEMAP_LABORATORY ; $52
+ const TILEMAP_LABORATORY_CGB ; $53
+ const TILEMAP_CHARIZARD_INTRO ; $54
+ const TILEMAP_CHARIZARD_INTRO_CGB ; $55
+ const TILEMAP_SCYTHER_INTRO ; $56
+ const TILEMAP_SCYTHER_INTRO_CGB ; $57
+ const TILEMAP_AERODACTYL_INTRO ; $58
+ const TILEMAP_AERODACTYL_INTRO_CGB ; $59
+ const TILEMAP_JAPANESE_TITLE_SCREEN ; $5a
+ const TILEMAP_JAPANESE_TITLE_SCREEN_CGB ; $5b
+ const TILEMAP_SOLID_TILES_1 ; $5c
+ const TILEMAP_SOLID_TILES_2 ; $5d
+ const TILEMAP_SOLID_TILES_3 ; $5e
+ const TILEMAP_JAPANESE_TITLE_SCREEN_2 ; $5f
+ const TILEMAP_JAPANESE_TITLE_SCREEN_2_CGB ; $60
+ const TILEMAP_SOLID_TILES_4 ; $61
+ const TILEMAP_PLAYER ; $62
+ const TILEMAP_OPPONENT ; $63
+ const TILEMAP_TITLE_SCREEN ; $64
+ const TILEMAP_TITLE_SCREEN_CGB ; $65
+ const TILEMAP_COPYRIGHT ; $66
+ const TILEMAP_COPYRIGHT_CGB ; $67
+ const TILEMAP_NINTENDO ; $68
+ const TILEMAP_COMPANIES ; $69
diff --git a/src/engine/bank03.asm b/src/engine/bank03.asm
index 84a499c..d2065ae 100644
--- a/src/engine/bank03.asm
+++ b/src/engine/bank03.asm
@@ -459,12 +459,12 @@ Func_c34e: ; c34e (3:434e)
Func_c36a: ; c36a (3:436a)
xor a
- ld [wd323], a
+ ld [wOWMapEvents], a
ld a, [wCurMap]
cp POKEMON_DOME_ENTRANCE
jr nz, .asm_c379
xor a
- ld [wd323 + 1], a
+ ld [wOWMapEvents + 1], a
.asm_c379
ret
@@ -3453,7 +3453,7 @@ MasonLabLoadMap: ; d549 (3:5549)
jp SetNextNPCAndScript
MasonLabCloseTextBox: ; d55e (3:555e)
- ld a, $0a
+ ld a, MAP_EVENT_CHALLENGE_MACHINE
farcall Func_80b89
ret
@@ -3945,13 +3945,13 @@ DeckMachineRoomAfterDuel: ; d89f (3:589f)
db $00
DeckMachineRoomCloseTextBox: ; d8ad (3:58ad)
- ld a, $02
+ ld a, MAP_EVENT_FIGHTING_DECK_MACHINE
.asm_d8af
push af
farcall Func_80b89
pop af
inc a
- cp $0a
+ cp MAP_EVENT_FIRE_DECK_MACHINE + 1
jr c, .asm_d8af
ret
@@ -4046,7 +4046,7 @@ Script_d93f: ; d93f (3:593f)
.ows_d95a
play_sfx SFX_5A
max_out_event_value EVENT_FIGHTING_DECK_MACHINE_ACTIVE
- replace_map_blocks $02
+ replace_map_blocks MAP_EVENT_FIGHTING_DECK_MACHINE
print_text Text060a
.ows_d963
ask_question_jump_default_yes Text060b, .ows_d969
@@ -4099,7 +4099,7 @@ Script_d995: ; d995 (3:5995)
.ows_d9b0
play_sfx SFX_5A
max_out_event_value EVENT_ROCK_DECK_MACHINE_ACTIVE
- replace_map_blocks $03
+ replace_map_blocks MAP_EVENT_ROCK_DECK_MACHINE
print_text Text060a
.ows_d9b9
ask_question_jump_default_yes Text060b, .ows_d9bf
@@ -4127,7 +4127,7 @@ Script_d9c2: ; d9c2 (3:59c2)
.ows_d9dd
play_sfx SFX_5A
max_out_event_value EVENT_WATER_DECK_MACHINE_ACTIVE
- replace_map_blocks $04
+ replace_map_blocks MAP_EVENT_WATER_DECK_MACHINE
print_text Text060a
.ows_d9e6
ask_question_jump_default_yes Text060b, .ows_d9ec
@@ -4155,7 +4155,7 @@ Script_d9ef: ; d9ef (3:59ef)
.ows_da0a
play_sfx SFX_5A
max_out_event_value EVENT_LIGHTNING_DECK_MACHINE_ACTIVE
- replace_map_blocks $05
+ replace_map_blocks MAP_EVENT_LIGHTNING_DECK_MACHINE
print_text Text060a
.ows_da13
ask_question_jump_default_yes Text060b, .ows_da19
@@ -4183,7 +4183,7 @@ Script_da1c: ; da1c (3:5a1c)
.ows_da37
play_sfx SFX_5A
max_out_event_value EVENT_GRASS_DECK_MACHINE_ACTIVE
- replace_map_blocks $06
+ replace_map_blocks MAP_EVENT_GRASS_DECK_MACHINE
print_text Text060a
.ows_da40
ask_question_jump_default_yes Text060b, .ows_da46
@@ -4211,7 +4211,7 @@ Script_da49: ; da49 (3:5a49)
.ows_da64
play_sfx SFX_5A
max_out_event_value EVENT_PSYCHIC_DECK_MACHINE_ACTIVE
- replace_map_blocks $07
+ replace_map_blocks MAP_EVENT_PSYCHIC_DECK_MACHINE
print_text Text060a
.ows_da6d
ask_question_jump_default_yes Text060b, .ows_da73
@@ -4239,7 +4239,7 @@ Script_da76: ; da76 (3:5a76)
.ows_da91
play_sfx SFX_5A
max_out_event_value EVENT_SCIENCE_DECK_MACHINE_ACTIVE
- replace_map_blocks $08
+ replace_map_blocks MAP_EVENT_SCIENCE_DECK_MACHINE
print_text Text060a
.ows_da9a
ask_question_jump_default_yes Text060b, .ows_daa0
@@ -4267,7 +4267,7 @@ Script_daa3: ; daa3 (3:5aa3)
.ows_dabe
play_sfx SFX_5A
max_out_event_value EVENT_FIRE_DECK_MACHINE_ACTIVE
- replace_map_blocks $09
+ replace_map_blocks MAP_EVENT_FIRE_DECK_MACHINE
print_text Text060a
.ows_dac7
ask_question_jump_default_yes Text060b, .ows_dacd
@@ -8387,7 +8387,7 @@ PokemonDomeEntranceLoadMap: ; f607 (3:7607)
ret
PokemonDomeEntranceCloseTextBox: ; f62a (3:762a)
- ld a, $00
+ ld a, MAP_EVENT_POKEMON_DOME_DOOR
farcall Func_80b89
ret
@@ -8479,7 +8479,7 @@ Script_f6af: ; f6af (3:76af)
.ows_f6b9
print_npc_text Text0559
play_sfx SFX_0F
- replace_map_blocks $00
+ replace_map_blocks MAP_EVENT_POKEMON_DOME_DOOR
do_frames 30
move_player NORTH, 1
quit_script_fully
@@ -8540,7 +8540,7 @@ PokemonDomeLoadMap: ; f706 (3:7706)
jp SetNextScript
PokemonDomeCloseTextBox: ; f718 (3:7718)
- ld a, $01
+ ld a, MAP_EVENT_HALL_OF_HONOR_DOOR
farcall Func_80b89
ret
@@ -9040,7 +9040,7 @@ Script_BeatRod: ; faae (3:7aae)
move_active_npc NPCMovement_fb96
set_active_npc_direction SOUTH
play_sfx SFX_0F
- replace_map_blocks $01
+ replace_map_blocks MAP_EVENT_HALL_OF_HONOR_DOOR
set_event EVENT_POKEMON_DOME_STATE, POKEMON_DOME_DEFEATED
max_out_event_value EVENT_HALL_OF_HONOR_DOORS_OPEN
print_text_quit_fully Text05a4
@@ -9050,7 +9050,7 @@ Script_BeatRod: ; faae (3:7aae)
override_song MUSIC_STOP
set_event EVENT_RONALD_POKEMON_DOME_STATE, RONALD_CHALLENGED
play_sfx SFX_0F
- replace_map_blocks $01
+ replace_map_blocks MAP_EVENT_HALL_OF_HONOR_DOOR
move_active_npc NPCMovement_fbd2
set_default_song MUSIC_RONALD
play_default_song
diff --git a/src/engine/bank04.asm b/src/engine/bank04.asm
index b1fb692..b780b36 100644
--- a/src/engine/bank04.asm
+++ b/src/engine/bank04.asm
@@ -1194,7 +1194,7 @@ Func_11430: ; 11430 (4:5430)
dw wNPCDuelist, 1, $ff00 ; sNPCDuelist
dw wChallengeHallNPC, 1, $ff00 ; sChallengeHallNPC
dw wd698, 4, $ff00 ; sb818
- dw wd323, 11, $ff00 ; sb81c
+ dw wOWMapEvents, 11, $ff00 ; sOWMapEvents
dw Data_1156c, 1, $ff00 ; sb827
dw wd0b8, 1, $ff00 ; sb828
dw wd0b9, 1, $ff00 ; sb829
diff --git a/src/engine/bank07.asm b/src/engine/bank07.asm
index 018787e..85de56b 100644
--- a/src/engine/bank07.asm
+++ b/src/engine/bank07.asm
@@ -1710,7 +1710,7 @@ Credits_1d6ad: ; 1d6ad (7:56ad)
call Func_1d705
call Func_1c858
xor a
- ld [wd323 + 1], a
+ ld [wOWMapEvents + 1], a
ld a, MUSIC_CREDITS
call PlaySong
farcall Func_10031
diff --git a/src/engine/bank20.asm b/src/engine/bank20.asm
index ad2ffd1..4b5aa1a 100644
--- a/src/engine/bank20.asm
+++ b/src/engine/bank20.asm
@@ -1160,12 +1160,12 @@ StoreOWFramesetSubgroup: ; 805c1 (20:45c1)
INCLUDE "data/map_ow_framesets.asm"
-; clears wd323
+; clears wOWMapEvents
Func_80b7a: ; 80b7a (20:4b7a)
push hl
push bc
ld c, $b
- ld hl, wd323
+ ld hl, wOWMapEvents
xor a
.loop
ld [hli], a
@@ -1176,6 +1176,7 @@ Func_80b7a: ; 80b7a (20:4b7a)
ret
; 0x80b89
+; a = MAP_EVENT_* constant
Func_80b89: ; 80b89 (20:4b89)
push hl
push bc
@@ -1183,8 +1184,8 @@ Func_80b89: ; 80b89 (20:4b89)
ld c, a
ld a, TRUE
ld [wWriteBGMapToSRAM], a
- ld b, $00
- ld hl, wd323
+ ld b, $0
+ ld hl, wOWMapEvents
add hl, bc
ld a, [hl]
or a
@@ -1223,7 +1224,7 @@ Func_80baa: ; 80baa (20:4baa)
push af
ld b, $0
- ld hl, wd323
+ ld hl, wOWMapEvents
add hl, bc
ld a, $1
ld [hl], a
@@ -1232,7 +1233,7 @@ Func_80baa: ; 80baa (20:4baa)
add a
ld c, a
ld b, $0
- ld hl, .unknown_80c21
+ ld hl, .tilemap_pointers
add hl, bc
ld a, [hli]
ld h, [hl]
@@ -1281,41 +1282,42 @@ Func_80baa: ; 80baa (20:4baa)
pop hl
ret
-.unknown_80c21
- dw .data_1
- dw .data_2
- dw .data_3
- dw .data_4
- dw .data_5
- dw .data_6
- dw .data_7
- dw .data_8
- dw .data_9
- dw .data_10
- dw .data_11
-
-.data_1
- db $16, $00, TILEMAP_UNKNOWN_3, TILEMAP_UNKNOWN_3_CGB
-.data_2
- db $0e, $00, TILEMAP_UNKNOWN_4, TILEMAP_UNKNOWN_4_CGB
-.data_3
- db $06, $02, TILEMAP_UNKNOWN_2, TILEMAP_UNKNOWN_2_CGB
-.data_4
- db $0a, $02, TILEMAP_UNKNOWN_2, TILEMAP_UNKNOWN_2_CGB
-.data_5
- db $0e, $02, TILEMAP_UNKNOWN_2, TILEMAP_UNKNOWN_2_CGB
-.data_6
- db $12, $02, TILEMAP_UNKNOWN_2, TILEMAP_UNKNOWN_2_CGB
-.data_7
- db $0e, $0a, TILEMAP_UNKNOWN_2, TILEMAP_UNKNOWN_2_CGB
-.data_8
- db $12, $0a, TILEMAP_UNKNOWN_2, TILEMAP_UNKNOWN_2_CGB
-.data_9
- db $0e, $12, TILEMAP_UNKNOWN_2, TILEMAP_UNKNOWN_2_CGB
-.data_10
- db $12, $12, TILEMAP_UNKNOWN_2, TILEMAP_UNKNOWN_2_CGB
-.data_11
- db $0a, $00, TILEMAP_UNKNOWN_1, TILEMAP_UNKNOWN_1_CGB
+.tilemap_pointers
+ dw .PokemonDomeDoor ; MAP_EVENT_POKEMON_DOME_DOOR
+ dw .HallOfHonorDoor ; MAP_EVENT_HALL_OF_HONOR_DOOR
+ dw .FightingDeckMachine ; MAP_EVENT_FIGHTING_DECK_MACHINE
+ dw .RockDeckMachine ; MAP_EVENT_ROCK_DECK_MACHINE
+ dw .WaterDeckMachine ; MAP_EVENT_WATER_DECK_MACHINE
+ dw .LightningDeckMachine ; MAP_EVENT_LIGHTNING_DECK_MACHINE
+ dw .GrassDeckMachine ; MAP_EVENT_GRASS_DECK_MACHINE
+ dw .PsychicDeckMachine ; MAP_EVENT_PSYCHIC_DECK_MACHINE
+ dw .ScienceDeckMachine ; MAP_EVENT_SCIENCE_DECK_MACHINE
+ dw .FireDeckMachine ; MAP_EVENT_FIRE_DECK_MACHINE
+ dw .ChallengeMachine ; MAP_EVENT_CHALLENGE_MACHINE
+
+; x coordinate, y coordinate, non-cgb tilemap, cgb tilemap
+.PokemonDomeDoor
+ db $16, $00, TILEMAP_POKEMON_DOME_DOOR_MAP_EVENT, TILEMAP_POKEMON_DOME_DOOR_MAP_EVENT_CGB
+.HallOfHonorDoor
+ db $0e, $00, TILEMAP_HALL_OF_HONOR_DOOR_MAP_EVENT, TILEMAP_HALL_OF_HONOR_DOOR_MAP_EVENT_CGB
+.FightingDeckMachine
+ db $06, $02, TILEMAP_DECK_MACHINE_MAP_EVENT, TILEMAP_DECK_MACHINE_MAP_EVENT_CGB
+.RockDeckMachine
+ db $0a, $02, TILEMAP_DECK_MACHINE_MAP_EVENT, TILEMAP_DECK_MACHINE_MAP_EVENT_CGB
+.WaterDeckMachine
+ db $0e, $02, TILEMAP_DECK_MACHINE_MAP_EVENT, TILEMAP_DECK_MACHINE_MAP_EVENT_CGB
+.LightningDeckMachine
+ db $12, $02, TILEMAP_DECK_MACHINE_MAP_EVENT, TILEMAP_DECK_MACHINE_MAP_EVENT_CGB
+.GrassDeckMachine
+ db $0e, $0a, TILEMAP_DECK_MACHINE_MAP_EVENT, TILEMAP_DECK_MACHINE_MAP_EVENT_CGB
+.PsychicDeckMachine
+ db $12, $0a, TILEMAP_DECK_MACHINE_MAP_EVENT, TILEMAP_DECK_MACHINE_MAP_EVENT_CGB
+.ScienceDeckMachine
+ db $0e, $12, TILEMAP_DECK_MACHINE_MAP_EVENT, TILEMAP_DECK_MACHINE_MAP_EVENT_CGB
+.FireDeckMachine
+ db $12, $12, TILEMAP_DECK_MACHINE_MAP_EVENT, TILEMAP_DECK_MACHINE_MAP_EVENT_CGB
+.ChallengeMachine
+ db $0a, $00, TILEMAP_CHALLENGE_MACHINE_MAP_EVENT, TILEMAP_CHALLENGE_MACHINE_MAP_EVENT_CGB
ret ; unreferenced stray ret?
@@ -1607,12 +1609,12 @@ Tilemaps: ; 80e67 (20:4e67)
tilemap OverworldMapCGBTilemap, TILESET_OVERWORLD_MAP ; TILEMAP_OVERWORLD_MAP_CGB
tilemap MasonLaboratoryTilemap, TILESET_MASON_LABORATORY ; TILEMAP_MASON_LABORATORY
tilemap MasonLaboratoryCGBTilemap, TILESET_MASON_LABORATORY ; TILEMAP_MASON_LABORATORY_CGB
- tilemap Unknown1Tilemap, TILESET_MASON_LABORATORY ; TILEMAP_UNKNOWN_1
- tilemap Unknown1CGBTilemap, TILESET_MASON_LABORATORY ; TILEMAP_UNKNOWN_1_CGB
+ tilemap Unknown1Tilemap, TILESET_MASON_LABORATORY ; TILEMAP_CHALLENGE_MACHINE_MAP_EVENT
+ tilemap Unknown1CGBTilemap, TILESET_MASON_LABORATORY ; TILEMAP_CHALLENGE_MACHINE_MAP_EVENT_CGB
tilemap DeckMachineRoomTilemap, TILESET_MASON_LABORATORY ; TILEMAP_DECK_MACHINE_ROOM
tilemap DeckMachineRoomCGBTilemap, TILESET_MASON_LABORATORY ; TILEMAP_DECK_MACHINE_ROOM_CGB
- tilemap Unknown2Tilemap, TILESET_MASON_LABORATORY ; TILEMAP_UNKNOWN_2
- tilemap Unknown2CGBTilemap, TILESET_MASON_LABORATORY ; TILEMAP_UNKNOWN_2_CGB
+ tilemap Unknown2Tilemap, TILESET_MASON_LABORATORY ; TILEMAP_DECK_MACHINE_MAP_EVENT
+ tilemap Unknown2CGBTilemap, TILESET_MASON_LABORATORY ; TILEMAP_DECK_MACHINE_MAP_EVENT_CGB
tilemap IshiharaTilemap, TILESET_ISHIHARA ; TILEMAP_ISHIHARA
tilemap IshiharaCGBTilemap, TILESET_ISHIHARA ; TILEMAP_ISHIHARA_CGB
tilemap FightingClubEntranceTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_FIGHTING_CLUB_ENTRANCE
@@ -1655,12 +1657,12 @@ Tilemaps: ; 80e67 (20:4e67)
tilemap ChallengeHallCGBTilemap, TILESET_CHALLENGE_HALL ; TILEMAP_CHALLENGE_HALL_CGB
tilemap PokemonDomeEntranceTilemap, TILESET_POKEMON_DOME_ENTRANCE ; TILEMAP_POKEMON_DOME_ENTRANCE
tilemap PokemonDomeEntranceCGBTilemap, TILESET_POKEMON_DOME_ENTRANCE ; TILEMAP_POKEMON_DOME_ENTRANCE_CGB
- tilemap Unknown3Tilemap, TILESET_POKEMON_DOME_ENTRANCE ; TILEMAP_UNKNOWN_3
- tilemap Unknown3CGBTilemap, TILESET_POKEMON_DOME_ENTRANCE ; TILEMAP_UNKNOWN_3_CGB
+ tilemap Unknown3Tilemap, TILESET_POKEMON_DOME_ENTRANCE ; TILEMAP_POKEMON_DOME_DOOR_MAP_EVENT
+ tilemap Unknown3CGBTilemap, TILESET_POKEMON_DOME_ENTRANCE ; TILEMAP_POKEMON_DOME_DOOR_MAP_EVENT_CGB
tilemap PokemonDomeTilemap, TILESET_POKEMON_DOME ; TILEMAP_POKEMON_DOME
tilemap PokemonDomeCGBTilemap, TILESET_POKEMON_DOME ; TILEMAP_POKEMON_DOME_CGB
- tilemap Unknown4Tilemap, TILESET_POKEMON_DOME ; TILEMAP_UNKNOWN_4
- tilemap Unknown4CGBTilemap, TILESET_POKEMON_DOME ; TILEMAP_UNKNOWN_4_CGB
+ tilemap Unknown4Tilemap, TILESET_POKEMON_DOME ; TILEMAP_HALL_OF_HONOR_DOOR_MAP_EVENT
+ tilemap Unknown4CGBTilemap, TILESET_POKEMON_DOME ; TILEMAP_HALL_OF_HONOR_DOOR_MAP_EVENT_CGB
tilemap HallOfHonorTilemap, TILESET_HALL_OF_HONOR ; TILEMAP_HALL_OF_HONOR
tilemap HallOfHonorCGBTilemap, TILESET_HALL_OF_HONOR ; TILEMAP_HALL_OF_HONOR_CGB
tilemap CardPopCGBTilemap, TILESET_CARD_POP ; TILEMAP_CARD_POP_CGB
diff --git a/src/macros/scripts.asm b/src/macros/scripts.asm
index bd500a2..10336ef 100644
--- a/src/macros/scripts.asm
+++ b/src/macros/scripts.asm
@@ -461,6 +461,7 @@ ENDM
; Replaces map blocks
; used for deck machines, challenge machine, Pokemon Dome doors, Hall of Honor doors etc
+; accepts as argument any of MAP_EVENT_* constants
replace_map_blocks: MACRO
run_command ScriptCommand_ReplaceMapBlocks
db \1 ; id
diff --git a/src/sram.asm b/src/sram.asm
index f2ffbf2..dfcf9c9 100644
--- a/src/sram.asm
+++ b/src/sram.asm
@@ -122,8 +122,8 @@ sChallengeHallNPC:: ; b817
sb818:: ; b818
ds $4
-sb81c:: ; b81c
- ds $b
+sOWMapEvents:: ; b81c
+ ds NUM_MAP_EVENTS
sb827:: ; b827
ds $1
diff --git a/src/wram.asm b/src/wram.asm
index 7ad068b..9a6dffb 100644
--- a/src/wram.asm
+++ b/src/wram.asm
@@ -28,7 +28,7 @@ NEXTU
; before $ef is initialized to 0 when starting decompression.
wDecompressionSecondaryBuffer:: ; c000
ds $ef
-wDecompressionSecondaryBufferStart:: ; ; c0ef
+wDecompressionSecondaryBufferStart:: ; c0ef
ds $11
ENDU
@@ -2246,8 +2246,12 @@ wCurOWFrameDuration:: ; d321
wNumLoadedFramesetSubgroups:: ; d322
ds $1
-wd323:: ; d323
- ds $b
+; holds the current state of each event
+; each corresponding to a MAP_EVENT_* constant
+; if $0, doors are closed / deck machines are deactivated
+; if $1, doors are open / deck machines are activated
+wOWMapEvents:: ; d323
+ ds NUM_MAP_EVENTS
; the OWMAP_* value for the current overworld map selection
wOverworldMapSelection:: ; d32e