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
132
133
134
135
136
137
138
139
140
141
|
PokemonMansion3F_Script:
call Mansion3CheckReplaceSwitchDoorBlocks
call EnableAutoTextBoxDrawing
ld hl, Mansion3TrainerHeaders
ld de, PokemonMansion3F_ScriptPointers
ld a, [wPokemonMansion3FCurScript]
call ExecuteCurMapScriptInTable
ld [wPokemonMansion3FCurScript], a
ret
Mansion3CheckReplaceSwitchDoorBlocks:
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
ld a, $e
lb bc, 2, 7
call Mansion2ReplaceBlock
ld a, $5f
lb bc, 5, 7
call Mansion2ReplaceBlock
ret
.switchTurnedOn
ld a, $5f
lb bc, 2, 7
call Mansion2ReplaceBlock
ld a, $e
lb bc, 5, 7
call Mansion2ReplaceBlock
ret
PokemonMansion3F_ScriptPointers:
def_script_pointers
dw_const PokemonMansion3FDefaultScript, SCRIPT_POKEMONMANSION3F_DEFAULT
dw_const DisplayEnemyTrainerTextAndStartBattle, SCRIPT_POKEMONMANSION3F_START_BATTLE
dw_const EndTrainerBattle, SCRIPT_POKEMONMANSION3F_END_BATTLE
PokemonMansion3FDefaultScript:
ld hl, .holeCoords
call .isPlayerFallingDownHole
ld a, [wWhichDungeonWarp]
and a
jp z, CheckFightingMapTrainers
cp $3
ld a, POKEMON_MANSION_1F
jr nz, .fellDownHoleTo1F
ld a, POKEMON_MANSION_2F
.fellDownHoleTo1F
ld [wDungeonWarpDestinationMap], a
ret
.holeCoords:
dbmapcoord 16, 14
dbmapcoord 17, 14
dbmapcoord 19, 14
db -1 ; end
.isPlayerFallingDownHole:
xor a
ld [wWhichDungeonWarp], a
ld a, [wStatusFlags3]
bit BIT_ON_DUNGEON_WARP, a
ret nz
call ArePlayerCoordsInArray
ret nc
ld a, [wCoordIndex]
ld [wWhichDungeonWarp], a
ld hl, wStatusFlags3
set BIT_ON_DUNGEON_WARP, [hl]
ld hl, wStatusFlags6
set BIT_DUNGEON_WARP, [hl]
ret
Mansion3Script_Switches::
ld a, [wSpritePlayerStateData1FacingDirection]
cp SPRITE_FACING_UP
ret nz
xor a
ldh [hJoyHeld], a
ld a, TEXT_POKEMONMANSION3F_SWITCH
ldh [hTextID], a
jp DisplayTextID
PokemonMansion3F_TextPointers:
def_text_pointers
dw_const PokemonMansion3FSuperNerdText, TEXT_POKEMONMANSION3F_SUPER_NERD
dw_const PokemonMansion3FScientistText, TEXT_POKEMONMANSION3F_SCIENTIST
dw_const PickUpItemText, TEXT_POKEMONMANSION3F_MAX_POTION
dw_const PickUpItemText, TEXT_POKEMONMANSION3F_IRON
dw_const PokemonMansion3FDiaryText, TEXT_POKEMONMANSION3F_DIARY
dw_const PokemonMansion2FSwitchText, TEXT_POKEMONMANSION3F_SWITCH ; This switch uses the text script from the 2F.
Mansion3TrainerHeaders:
def_trainers
Mansion3TrainerHeader0:
trainer EVENT_BEAT_MANSION_3_TRAINER_0, 0, PokemonMansion3FSuperNerdBattleText, PokemonMansion3FSuperNerdEndBattleText, PokemonMansion3FSuperNerdAfterBattleText
Mansion3TrainerHeader1:
trainer EVENT_BEAT_MANSION_3_TRAINER_1, 2, PokemonMansion3FScientistBattleText, PokemonMansion3FScientistEndBattleText, PokemonMansion3FScientistAfterBattleText
db -1 ; end
PokemonMansion3FSuperNerdText:
text_asm
ld hl, Mansion3TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
PokemonMansion3FScientistText:
text_asm
ld hl, Mansion3TrainerHeader1
call TalkToTrainer
jp TextScriptEnd
PokemonMansion3FSuperNerdBattleText:
text_far _PokemonMansion3FSuperNerdBattleText
text_end
PokemonMansion3FSuperNerdEndBattleText:
text_far _PokemonMansion3FSuperNerdEndBattleText
text_end
PokemonMansion3FSuperNerdAfterBattleText:
text_far _PokemonMansion3FSuperNerdAfterBattleText
text_end
PokemonMansion3FScientistBattleText:
text_far _PokemonMansion3FScientistBattleText
text_end
PokemonMansion3FScientistEndBattleText:
text_far _PokemonMansion3FScientistEndBattleText
text_end
PokemonMansion3FScientistAfterBattleText:
text_far _PokemonMansion3FScientistAfterBattleText
text_end
PokemonMansion3FDiaryText:
text_far _PokemonMansion3FDiaryText
text_end
|