1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
|
PokemonMansion1F_Script:
call Mansion1CheckReplaceSwitchDoorBlocks
call EnableAutoTextBoxDrawing
ld hl, Mansion1TrainerHeaders
ld de, PokemonMansion1F_ScriptPointers
ld a, [wPokemonMansion1FCurScript]
call ExecuteCurMapScriptInTable
ld [wPokemonMansion1FCurScript], a
ret
Mansion1CheckReplaceSwitchDoorBlocks:
ld hl, wCurrentMapScriptFlags
bit BIT_CUR_MAP_LOADED_1, [hl]
res BIT_CUR_MAP_LOADED_1, [hl]
ret z
CheckEvent EVENT_MANSION_SWITCH_ON
jr nz, .switchTurnedOn
lb bc, 6, 12
call Mansion1LoadEmptyFloorTileBlock
lb bc, 3, 8
call Mansion1LoadHorizontalGateBlock
lb bc, 8, 10
call Mansion1LoadHorizontalGateBlock
lb bc, 13, 13
jp Mansion1LoadHorizontalGateBlock
.switchTurnedOn
lb bc, 6, 12
call Mansion1LoadHorizontalGateBlock
lb bc, 3, 8
call Mansion1LoadEmptyFloorTileBlock
lb bc, 8, 10
call Mansion1LoadEmptyFloorTileBlock
lb bc, 13, 13
jp Mansion1LoadEmptyFloorTileBlock
Mansion1LoadHorizontalGateBlock:
ld a, $2d
ld [wNewTileBlockID], a
jr Mansion1ReplaceBlock
Mansion1LoadEmptyFloorTileBlock:
ld a, $e
ld [wNewTileBlockID], a
Mansion1ReplaceBlock:
predef ReplaceTileBlock
ret
Mansion1Script_Switches::
ld a, [wSpritePlayerStateData1FacingDirection]
cp SPRITE_FACING_UP
ret nz
xor a
ldh [hJoyHeld], a
ld a, TEXT_POKEMONMANSION1F_SWITCH
ldh [hTextID], a
jp DisplayTextID
PokemonMansion1F_ScriptPointers:
def_script_pointers
dw_const CheckFightingMapTrainers, SCRIPT_POKEMONMANSION1F_DEFAULT
dw_const DisplayEnemyTrainerTextAndStartBattle, SCRIPT_POKEMONMANSION1F_START_BATTLE
dw_const EndTrainerBattle, SCRIPT_POKEMONMANSION1F_END_BATTLE
PokemonMansion1F_TextPointers:
def_text_pointers
dw_const PokemonMansion1FScientistText, TEXT_POKEMONMANSION1F_SCIENTIST
dw_const PickUpItemText, TEXT_POKEMONMANSION1F_ESCAPE_ROPE
dw_const PickUpItemText, TEXT_POKEMONMANSION1F_CARBOS
dw_const PokemonMansion1FSwitchText, TEXT_POKEMONMANSION1F_SWITCH
Mansion1TrainerHeaders:
def_trainers
Mansion1TrainerHeader0:
trainer EVENT_BEAT_MANSION_1_TRAINER_0, 3, PokemonMansion1FScientistBattleText, PokemonMansion1FScientistEndBattleText, PokemonMansion1FScientistAfterBattleText
db -1 ; end
PokemonMansion1FScientistText:
text_asm
ld hl, Mansion1TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
PokemonMansion1FScientistBattleText:
text_far _PokemonMansion1FScientistBattleText
text_end
PokemonMansion1FScientistEndBattleText:
text_far _PokemonMansion1FScientistEndBattleText
text_end
PokemonMansion1FScientistAfterBattleText:
text_far _PokemonMansion1FScientistAfterBattleText
text_end
PokemonMansion1FSwitchText:
text_asm
ld hl, .Text
call PrintText
call YesNoChoice
ld a, [wCurrentMenuItem]
and a
jr nz, .not_pressed
ld a, $1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
ld hl, wCurrentMapScriptFlags
set BIT_CUR_MAP_LOADED_1, [hl]
ld hl, .PressedText
call PrintText
ld a, SFX_GO_INSIDE
call PlaySound
CheckAndSetEvent EVENT_MANSION_SWITCH_ON
jr z, .done
ResetEventReuseHL EVENT_MANSION_SWITCH_ON
jr .done
.not_pressed
ld hl, .NotPressedText
call PrintText
.done
jp TextScriptEnd
.Text:
text_far _PokemonMansion1FSwitchText
text_end
.PressedText:
text_far _PokemonMansion1FSwitchPressedText
text_end
.NotPressedText:
text_far _PokemonMansion1FSwitchNotPressedText
text_end
|