This repository has been archived by the owner on Aug 26, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
/
mansion1.asm
134 lines (118 loc) · 2.59 KB
/
mansion1.asm
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
Mansion1Script:
call Mansion1Subscript1
call EnableAutoTextBoxDrawing
ld hl, Mansion1TrainerHeader0
ld de, Mansion1ScriptPointers
ld a, [wMansion1CurScript]
call ExecuteCurMapScriptInTable
ld [wMansion1CurScript], a
ret
Mansion1Subscript1:
ld hl, wCurrentMapScriptFlags
bit 5, [hl]
res 5, [hl]
ret z
CheckEvent EVENT_MANSION_SWITCH_ON
jr nz, .asm_442ec
lb bc, 6, 12
call Mansion1Script_4430b
lb bc, 3, 8
call Mansion1Script_44304
lb bc, 8, 10
call Mansion1Script_44304
lb bc, 13, 13
jp Mansion1Script_44304
.asm_442ec
lb bc, 6, 12
call Mansion1Script_44304
lb bc, 3, 8
call Mansion1Script_4430b
lb bc, 8, 10
call Mansion1Script_4430b
lb bc, 13, 13
jp Mansion1Script_4430b
Mansion1Script_44304:
ld a, $2d
ld [wNewTileBlockID], a
jr Mansion1ReplaceBlock
Mansion1Script_4430b:
ld a, $e
ld [wNewTileBlockID], a
Mansion1ReplaceBlock:
predef ReplaceTileBlock
ret
Mansion1Script_Switches:
ld a, [wSpriteStateData1 + 9]
cp SPRITE_FACING_UP
ret nz
xor a
ld [hJoyHeld], a
ld a, $4
ld [hSpriteIndexOrTextID], a
jp DisplayTextID
Mansion1ScriptPointers:
dw CheckFightingMapTrainers
dw DisplayEnemyTrainerTextAndStartBattle
dw EndTrainerBattle
Mansion1TextPointers:
dw Mansion1Text1
dw PickUpItemText
dw PickUpItemText
dw Mansion1Text4
Mansion1TrainerHeader0:
dbEventFlagBit EVENT_BEAT_MANSION_1_TRAINER_0
db ($3 << 4) ; trainer's view range
dwEventFlagAddress EVENT_BEAT_MANSION_1_TRAINER_0
dw Mansion1BattleText2 ; TextBeforeBattle
dw Mansion1AfterBattleText2 ; TextAfterBattle
dw Mansion1EndBattleText2 ; TextEndBattle
dw Mansion1EndBattleText2 ; TextEndBattle
db $ff
Mansion1Text1:
TX_ASM
ld hl, Mansion1TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
Mansion1BattleText2:
TX_FAR _Mansion1BattleText2
db "@"
Mansion1EndBattleText2:
TX_FAR _Mansion1EndBattleText2
db "@"
Mansion1AfterBattleText2:
TX_FAR _Mansion1AfterBattleText2
db "@"
Mansion1Text4:
TX_ASM
ld hl, MansionSwitchText
call PrintText
call YesNoChoice
ld a, [wCurrentMenuItem]
and a
jr nz, .asm_4438c
ld a, $1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
ld hl, wCurrentMapScriptFlags
set 5, [hl]
ld hl, MansionSwitchPressedText
call PrintText
ld a, SFX_GO_INSIDE
call PlaySound
CheckAndSetEvent EVENT_MANSION_SWITCH_ON
jr z, .asm_44392
ResetEventReuseHL EVENT_MANSION_SWITCH_ON
jr .asm_44392
.asm_4438c
ld hl, MansionSwitchNotPressedText
call PrintText
.asm_44392
jp TextScriptEnd
MansionSwitchText:
TX_FAR _MansionSwitchText
db "@"
MansionSwitchPressedText:
TX_FAR _MansionSwitchPressedText
db "@"
MansionSwitchNotPressedText:
TX_FAR _MansionSwitchNotPressedText
db "@"