diff options
author | PikalaxALT <PikalaxALT@gmail.com> | 2015-11-11 16:11:08 -0500 |
---|---|---|
committer | PikalaxALT <PikalaxALT@gmail.com> | 2015-11-11 16:15:06 -0500 |
commit | 91068077f05afbbfd6571ceadada2c03ac7c8038 (patch) | |
tree | 5d3ff368c3a31c99cd1967a589403a37ee1377ff /event | |
parent | b522b0f165b6aae278ca9b4b18bada606d4ae737 (diff) |
Further split bank 4
Diffstat (limited to 'event')
-rwxr-xr-x | event/bug_contest_2.asm | 136 | ||||
-rwxr-xr-x | event/bug_contest_judging.asm | 480 | ||||
-rwxr-xr-x | event/elevator.asm | 287 | ||||
-rwxr-xr-x | event/forced_movement.asm | 68 | ||||
-rwxr-xr-x | event/itemball.asm | 54 | ||||
-rwxr-xr-x | event/itemfinder.asm | 58 | ||||
-rw-r--r-- | event/kurt.asm | 2 | ||||
-rw-r--r-- | event/mom.asm | 6 | ||||
-rw-r--r-- | event/move_deleter.asm | 2 | ||||
-rwxr-xr-x | event/whiteout.asm | 84 |
10 files changed, 1172 insertions, 5 deletions
diff --git a/event/bug_contest_2.asm b/event/bug_contest_2.asm new file mode 100755 index 000000000..4aa4390eb --- /dev/null +++ b/event/bug_contest_2.asm @@ -0,0 +1,136 @@ +Special_SelectRandomBugContestContestants: ; 139a8 +; Select five random people to participate in the current contest. + +; First we have to make sure that any old data is cleared away. + ld c, 10 ; Number of people to choose from. + ld hl, BugCatchingContestantEventFlagTable +.loop1 + push bc + push hl + ld e, [hl] + inc hl + ld d, [hl] + ld b, RESET_FLAG + call EventFlagAction + pop hl +rept 2 + inc hl +endr + pop bc + dec c + jr nz, .loop1 + +; Now that that's out of the way, we can get on to the good stuff. + ld c, 5 +.loop2 + push bc +.next +; Choose a flag at uniform random to be set. + call Random + cp $fa ; 250 + jr nc, .next + ld c, $19 ; 25 + call SimpleDivide + ld e, b + ld d, 0 + ld hl, BugCatchingContestantEventFlagTable +rept 2 + add hl, de +endr + ld e, [hl] + inc hl + ld d, [hl] + push de +; If we've already set it, it doesn't count. + ld b, CHECK_FLAG + call EventFlagAction + pop de + ld a, c + and a + jr nz, .next +; Set the flag. This will cause that sprite to not be visible in the contest. + ld b, SET_FLAG + call EventFlagAction + pop bc +; Check if we're done. If so, return. Otherwise, choose the next victim. + dec c + jr nz, .loop2 + ret +; 139ed + +Special_CheckBugContestContestantFlag: ; 139ed +; Checks the flag of the Bug Catching Contestant whose index is loaded in a. + +; Bug: If a >= 10 when this is called, it will read beyond the table. + + ld hl, BugCatchingContestantEventFlagTable + ld e, a + ld d, 0 +rept 2 + add hl, de +endr + ld e, [hl] + inc hl + ld d, [hl] + ld b, CHECK_FLAG + call EventFlagAction + ret +; 139fe + +BugCatchingContestantEventFlagTable: ; 139fe + dw EVENT_BUG_CATCHING_CONTESTANT_1A + dw EVENT_BUG_CATCHING_CONTESTANT_2A + dw EVENT_BUG_CATCHING_CONTESTANT_3A + dw EVENT_BUG_CATCHING_CONTESTANT_4A + dw EVENT_BUG_CATCHING_CONTESTANT_5A + dw EVENT_BUG_CATCHING_CONTESTANT_6A + dw EVENT_BUG_CATCHING_CONTESTANT_7A + dw EVENT_BUG_CATCHING_CONTESTANT_8A + dw EVENT_BUG_CATCHING_CONTESTANT_9A + dw EVENT_BUG_CATCHING_CONTESTANT_10A +; 13a12 + +ContestDropOffMons: ; 13a12 + ld hl, PartyMon1HP + ld a, [hli] + or [hl] + jr z, .fainted +; Mask the rest of your party by setting the count to 1... + ld hl, PartyCount + ld a, 1 + ld [hli], a + inc hl +; ... backing up the second mon index somewhere... + ld a, [hl] + ld [wBugContestSecondPartySpecies], a +; ... and replacing it with the terminator byte + ld [hl], $ff + xor a + ld [ScriptVar], a + ret + +.fainted + ld a, $1 + ld [ScriptVar], a + ret +; 13a31 + +ContestReturnMons: ; 13a31 +; Restore the species of the second mon. + ld hl, PartySpecies + 1 + ld a, [wBugContestSecondPartySpecies] + ld [hl], a +; Restore the party count, which must be recomputed. + ld b, $1 +.loop + ld a, [hli] + cp $ff + jr z, .done + inc b + jr .loop + +.done + ld a, b + ld [PartyCount], a + ret +; 13a47 diff --git a/event/bug_contest_judging.asm b/event/bug_contest_judging.asm new file mode 100755 index 000000000..25b3805ee --- /dev/null +++ b/event/bug_contest_judging.asm @@ -0,0 +1,480 @@ +_BugContestJudging: ; 1369d + call ContestScore + callba MobileFn_105f79 + call Function13819 + ld a, [wd00a] + call LoadContestantName + ld a, [wd00b] + ld [wd265], a + call GetPokemonName + ld hl, BugContest_ThirdPlaceText + call PrintText + ld a, [EndFlypoint] + call LoadContestantName + ld a, [MovementBuffer] + ld [wd265], a + call GetPokemonName + ld hl, BugContest_SecondPlaceText + call PrintText + ld a, [wd002] + call LoadContestantName + ld a, [wd003] + ld [wd265], a + call GetPokemonName + ld hl, BugContest_FirstPlaceText + call PrintText + jp Function13807 +; 136eb + +BugContest_FirstPlaceText: ; 0x136eb + text_jump ContestJudging_FirstPlaceText + start_asm +BugContest_FirstPlace: ; 136f0 + ld de, SFX_1ST_PLACE + call PlaySFX + call WaitSFX + ld hl, BugContest_FirstPlaceScoreText + ret +; 136fd + +BugContest_FirstPlaceScoreText: ; 0x136fd + ; The winning score was @ points! + text_jump ContestJudging_FirstPlaceScoreText + db "@" +; 0x13702 + +BugContest_SecondPlaceText: ; 0x13702 + ; Placing second was @ , who caught a @ !@ @ + text_jump ContestJudging_SecondPlaceText + start_asm +BugContest_SecondPlace: ; 13707 + ld de, SFX_2ND_PLACE + call PlaySFX + call WaitSFX + ld hl, BugContest_SecondPlaceScoreText + ret +; 13714 + +BugContest_SecondPlaceScoreText: ; 0x13714 + ; The score was @ points! + text_jump ContestJudging_SecondPlaceScoreText + db "@" +; 0x13719 + +BugContest_ThirdPlaceText: ; 0x13719 + ; Placing third was @ , who caught a @ !@ @ + text_jump ContestJudging_ThirdPlaceText + start_asm +; 0x1371e + +BugContest_ThirdPlace: ; 1371e + ld de, SFX_3RD_PLACE + call PlaySFX + call WaitSFX + ld hl, BugContest_ThirdPlaceScoreText + ret +; 1372b + +BugContest_ThirdPlaceScoreText: ; 0x1372b + ; The score was @ points! + text_jump ContestJudging_ThirdPlaceScoreText + db "@" +; 0x13730 + +LoadContestantName: ; 13730 + +; If a = 0, get your name. + dec a + jr z, .done +; Find the pointer for the trainer class of the Bug Catching Contestant whose ID is in a. + ld c, a + ld b, 0 + ld hl, BugContestantPointers +rept 2 + add hl, bc +endr + ld a, [hli] + ld h, [hl] + ld l, a +; Copy the Trainer Class to c. + ld a, [hli] + ld c, a +; Save hl and bc for later. + push hl + push bc +; Get the Trainer Class name and copy it into wd016. + callab GetTrainerClassName + ld hl, StringBuffer1 + ld de, wd016 + ld bc, TRAINER_CLASS_NAME_LENGTH + call CopyBytes + ld hl, wd016 +; Delete the trailing terminator and replace it with a space. +.next + ld a, [hli] + cp "@" + jr nz, .next + dec hl + ld [hl], " " + inc hl + ld d, h + ld e, l +; Restore the Trainer Class ID and Trainer ID pointer. Save de for later. + pop bc + pop hl + push de +; Get the name of the trainer with class c and ID b. + ld a, [hl] + ld b, a + callab GetTrainerName +; Append the name to wd016. + ld hl, StringBuffer1 + pop de + ld bc, NAME_LENGTH - 1 + jp CopyBytes + +.done + ld hl, PlayerName + ld de, wd016 + ld bc, NAME_LENGTH + jp CopyBytes +; 13783 + +BugContestantPointers: ; 13783 + dw BugContestant_BugCatcherDon ; This reverts back to the player + dw BugContestant_BugCatcherDon + dw BugContestant_BugCatcherEd + dw BugContestant_CooltrainerMNick + dw BugContestant_PokefanMWilliam + dw BugContestant_BugCatcherBenny + dw BugContestant_CamperBarry + dw BugContestant_PicnickerCindy + dw BugContestant_BugCatcherJosh + dw BugContestant_YoungsterSamuel + dw BugContestant_SchoolboyKipp +; 13799 + +BugContestant_BugCatcherDon: + db BUG_CATCHER, DON + dbw KAKUNA, 300 + dbw METAPOD, 285 + dbw CATERPIE, 226 + +BugContestant_BugCatcherEd: + db BUG_CATCHER, ED + dbw BUTTERFREE, 286 + dbw BUTTERFREE, 251 + dbw CATERPIE, 237 + +BugContestant_CooltrainerMNick: + db COOLTRAINERM, NICK + dbw SCYTHER, 357 + dbw BUTTERFREE, 349 + dbw PINSIR, 368 + +BugContestant_PokefanMWilliam: + db POKEFANM, WILLIAM + dbw PINSIR, 332 + dbw BUTTERFREE, 324 + dbw VENONAT, 321 + +BugContestant_BugCatcherBenny: + db BUG_CATCHER, BUG_CATCHER_BENNY + dbw BUTTERFREE, 318 + dbw WEEDLE, 295 + dbw CATERPIE, 285 + +BugContestant_CamperBarry: + db CAMPER, BARRY + dbw PINSIR, 366 + dbw VENONAT, 329 + dbw KAKUNA, 314 + +BugContestant_PicnickerCindy: + db PICNICKER, CINDY + dbw BUTTERFREE, 341 + dbw METAPOD, 301 + dbw CATERPIE, 264 + +BugContestant_BugCatcherJosh: + db BUG_CATCHER, JOSH + dbw SCYTHER, 326 + dbw BUTTERFREE, 292 + dbw METAPOD, 282 + +BugContestant_YoungsterSamuel: + db YOUNGSTER, SAMUEL + dbw WEEDLE, 270 + dbw PINSIR, 282 + dbw CATERPIE, 251 + +BugContestant_SchoolboyKipp: + db SCHOOLBOY, KIPP + dbw VENONAT, 267 + dbw PARAS, 254 + dbw KAKUNA, 259 +; 13807 + +Function13807: ; 13807 + ld hl, wd00a + ld de, -4 + ld b, 3 +.loop + ld a, [hl] + cp 1 + jr z, .done + add hl, de + dec b + jr nz, .loop + +.done + ret +; 13819 + +Function13819: ; 13819 + call Function13833 + call Function138b0 + ld hl, wd00e + ld a, 1 + ld [hli], a + ld a, [wContestMon] + ld [hli], a + ld a, [hProduct] + ld [hli], a + ld a, [hMultiplicand] + ld [hl], a + call Function1383e + ret +; 13833 + +Function13833: ; 13833 + ld hl, wd002 + ld b, 12 + xor a +.loop + ld [hli], a + dec b + jr nz, .loop + ret +; 1383e + +Function1383e: ; 1383e + ld de, wd010 + ld hl, wd004 + ld c, 2 + call StringCmp + jr c, .next + ld hl, EndFlypoint + ld de, wd00a + ld bc, 4 + call CopyBytes + ld hl, wd002 + ld de, EndFlypoint + ld bc, 4 + call CopyBytes + ld hl, wd002 + call Function138a0 + jr .done + +.next + ld de, wd010 + ld hl, wd008 + ld c, 2 + call StringCmp + jr c, .next2 + ld hl, EndFlypoint + ld de, wd00a + ld bc, 4 + call CopyBytes + ld hl, EndFlypoint + call Function138a0 + jr .done + +.next2 + ld de, wd010 + ld hl, wd00c + ld c, 2 + call StringCmp + jr c, .done + ld hl, wd00a + call Function138a0 + +.done + ret +; 138a0 + +Function138a0: ; 138a0 + ld de, wd00e + ld a, [de] + inc de + ld [hli], a + ld a, [de] + inc de + ld [hli], a + ld a, [de] + inc de + ld [hli], a + ld a, [de] + inc de + ld [hl], a + ret +; 138b0 + +Function138b0: ; 138b0 + ld e, 0 +.loop + push de + call Special_CheckBugContestContestantFlag + pop de + jr nz, .done + ld a, e +rept 2 + inc a +endr + ld [wd00e], a + dec a + ld c, a + ld b, 0 + ld hl, BugContestantPointers +rept 2 + add hl, bc +endr + ld a, [hli] + ld h, [hl] + ld l, a +rept 2 + inc hl +endr +.loop2 + call Random + and 3 + cp 3 + jr z, .loop2 + ld c, a + ld b, 0 +rept 3 + add hl, bc +endr + ld a, [hli] + ld [wd00f], a + ld a, [hli] + ld h, [hl] + ld l, a + call Random + and 7 + ld c, a + ld b, 0 + add hl, bc + ld a, h + ld [wd010], a + ld a, l + ld [wd011], a + push de + call Function1383e + pop de + +.done + inc e + ld a, e + cp 10 + jr nz, .loop + ret +; 13900 + +ContestScore: ; 13900 +; Determine the player's score in the Bug Catching Contest. + + xor a + ld [hProduct], a + ld [hMultiplicand], a + + ld a, [wContestMonSpecies] ; Species + and a + jr z, .done + + ; Tally the following: + + ; Max HP * 4 + ld a, [wContestMonMaxHP + 1] + call .AddContestStat + ld a, [wContestMonMaxHP + 1] + call .AddContestStat + ld a, [wContestMonMaxHP + 1] + call .AddContestStat + ld a, [wContestMonMaxHP + 1] + call .AddContestStat + + ; Stats + ld a, [wContestMonAttack + 1] + call .AddContestStat + ld a, [wContestMonDefense + 1] + call .AddContestStat + ld a, [wContestMonSpeed + 1] + call .AddContestStat + ld a, [wContestMonSpclAtk + 1] + call .AddContestStat + ld a, [wContestMonSpclDef + 1] + call .AddContestStat + + ; DVs + ld a, [wContestMonDVs + 0] + ld b, a + and 2 +rept 2 + add a +endr + ld c, a + + swap b + ld a, b + and 2 + add a + add c + ld d, a + + ld a, [wContestMonDVs + 1] + ld b, a + and 2 + ld c, a + + swap b + ld a, b + and 2 + srl a +rept 2 + add c +endr +rept 2 + add d +endr + + call .AddContestStat + + ; Remaining HP / 8 + ld a, [wContestMonHP + 1] + srl a + srl a + srl a + call .AddContestStat + + ; Whether it's holding an item + ld a, [wContestMonItem] + and a + jr z, .done + + ld a, 1 + call .AddContestStat + +.done + ret +; 1397f + +.AddContestStat: ; 1397f + ld hl, hMultiplicand + add [hl] + ld [hl], a + ret nc + dec hl + inc [hl] + ret +; 13988 diff --git a/event/elevator.asm b/event/elevator.asm new file mode 100755 index 000000000..42a844cae --- /dev/null +++ b/event/elevator.asm @@ -0,0 +1,287 @@ +Elevator:: ; 1342d + call Function1344a + call Function1347d + jr c, .asm_13448 + ld [wd041], a + call Function134dd + jr c, .asm_13448 + ld hl, wd041 + cp [hl] + jr z, .asm_13448 + call Function134c0 + and a + ret + +.asm_13448 + scf + ret +; 1344a + +Function1344a: ; 1344a + ld a, b + ld [EngineBuffer1], a + ld a, e + ld [wd03f], a + ld a, d + ld [wd040], a + call Function1345a + ret +; 1345a + +Function1345a: ; 1345a + ld de, OBPals + 8 * 6 + ld bc, 4 + ld hl, wd03f + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [EngineBuffer1] + call GetFarByte + inc hl + ld [de], a + inc de +.asm_1346f + ld a, [EngineBuffer1] + call GetFarByte + ld [de], a + inc de + add hl, bc + cp $ff + jr nz, .asm_1346f + ret +; 1347d + +Function1347d: ; 1347d + ld hl, wd03f + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [EngineBuffer1] + call GetFarByte + ld c, a + inc hl + ld a, [BackupMapGroup] + ld d, a + ld a, [BackupMapNumber] + ld e, a + ld b, $0 +.asm_13495 + ld a, [EngineBuffer1] + call GetFarByte + cp $ff + jr z, .asm_134be +rept 2 + inc hl +endr + ld a, [EngineBuffer1] + call GetFarByte + inc hl + cp d + jr nz, .asm_134b7 + ld a, [EngineBuffer1] + call GetFarByte + inc hl + cp e + jr nz, .asm_134b8 + jr .asm_134bb + +.asm_134b7 + inc hl + +.asm_134b8 + inc b + jr .asm_13495 + +.asm_134bb + xor a + ld a, b + ret + +.asm_134be + scf + ret +; 134c0 + +Function134c0: ; 134c0 + push af + ld hl, wd03f + ld a, [hli] + ld h, [hl] + ld l, a + inc hl + pop af + ld bc, 4 + call AddNTimes + inc hl + ld de, wdcac + ld a, [EngineBuffer1] + ld bc, 3 + call FarCopyBytes + ret +; 134dd + +Function134dd: ; 134dd + call LoadStandardMenuDataHeader + ld hl, Elevator_WhichFloorText + call PrintText + call Elevator_GetCurrentFloorText + ld hl, Elevator_MenuDataHeader + call CopyMenuDataHeader + call Function352f + call UpdateSprites + xor a + ld [wd0e4], a + call HandleScrollingMenu + call WriteBackup + ld a, [wcf73] + cp $2 + jr z, .asm_1350b + xor a + ld a, [wcf77] + ret + +.asm_1350b + scf + ret +; 1350d + +Elevator_WhichFloorText: ; 0x1350d + ; Which floor? + text_jump UnknownText_0x1bd2bc + db "@" +; 0x13512 + + +Elevator_GetCurrentFloorText: ; 13512 + ld hl, Options + ld a, [hl] + push af + set NO_TEXT_SCROLL, [hl] + hlcoord 0, 0 + ld b, 4 + ld c, 8 + call TextBox + hlcoord 1, 2 + ld de, Elevator_CurrentFloorText + call PlaceString + hlcoord 4, 4 + call Elevator_GetCurrentFloorString + pop af + ld [Options], a + ret +; 13537 + +Elevator_CurrentFloorText: ; 13537 + db "Now on:@" +; 1353f + + +Elevator_GetCurrentFloorString: ; 1353f + push hl + ld a, [wd041] + ld e, a + ld d, 0 + ld hl, wd0f1 + add hl, de + ld a, [hl] + pop de + call GetFloorString + ret +; 13550 + +Elevator_MenuDataHeader: ; 0x13550 + db $40 ; flags + db 01, 12 ; start coords + db 09, 18 ; end coords + dw Elevator_MenuData2 + db 1 ; default option +; 0x13558 + +Elevator_MenuData2: ; 0x13558 + db $10 ; flags + db 4, 0 ; rows, columns + db 1 ; horizontal spacing + dbw 0, OBPals + 8 * 6 + dba GetElevatorFlorStrings + dba NULL + dba NULL +; 13568 + +GetElevatorFlorStrings: ; 13568 + ld a, [MenuSelection] + +GetFloorString: ; 1356b + push de + call FloorToString + ld d, h + ld e, l + pop hl + jp PlaceString +; 13575 + +FloorToString: ; 13575 + push de + ld e, a + ld d, 0 + ld hl, .floors +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + pop de + ret +; 13583 + +.floors + dw .b4f + dw .b3f + dw .b2f + dw .b1f + dw ._1f + dw ._2f + dw ._3f + dw ._4f + dw ._5f + dw ._6f + dw ._7f + dw ._8f + dw ._9f + dw ._10f + dw ._11f + dw .roof + +.b4f + db "B4F@" +.b3f + db "B3F@" +.b2f + db "B2F@" +.b1f + db "B1F@" +._1f + db "1F@" +._2f + db "2F@" +._3f + db "3F@" +._4f + db "4F@" +._5f + db "5F@" +._6f + db "6F@" +._7f + db "7F@" +._8f + db "8F@" +._9f + db "9F@" +._10f + db "10F@" +._11f + db "11F@" +.roof + db "ROOF@" +; 135db diff --git a/event/forced_movement.asm b/event/forced_movement.asm new file mode 100755 index 000000000..89a776d60 --- /dev/null +++ b/event/forced_movement.asm @@ -0,0 +1,68 @@ +Script_ForcedMovement:: ; 0x1253d + checkcode VAR_FACING + if_equal DOWN, .down + if_equal UP, .up + if_equal LEFT, .left + if_equal RIGHT, .right + end +; 0x12550 + +.up: ; 0x12550 + applymovement PLAYER, .MovementData_up + end +; 0x12555 + +.down: ; 0x12555 + applymovement PLAYER, .MovementData_down + end +; 0x1255a + +.right: ; 0x1255a + applymovement PLAYER, .MovementData_right + end +; 0x1255f + +.left: ; 0x1255f + applymovement PLAYER, .MovementData_left + end +; 0x12564 + +.MovementData_up: ; 0x12564 + step_wait5 + big_step_down + turn_in_down + step_wait5 + big_step_down + turn_head_down + step_end +; 0x1256b + +.MovementData_down: ; 0x1256b + step_wait5 + big_step_down + turn_in_up + step_wait5 + big_step_down + turn_head_up + step_end +; 0x12572 + +.MovementData_right: ; 0x12572 + step_wait5 + big_step_down + turn_in_left + step_wait5 + big_step_down + turn_head_left + step_end +; 0x12579 + +.MovementData_left: ; 0x12579 + step_wait5 + big_step_down + turn_in_right + step_wait5 + big_step_down + turn_head_right + step_end +; 0x12580 diff --git a/event/itemball.asm b/event/itemball.asm new file mode 100755 index 000000000..0e74cbd27 --- /dev/null +++ b/event/itemball.asm @@ -0,0 +1,54 @@ +FindItemInBallScript:: ; 0x122ce + callasm .TryReceiveItem + iffalse .no_room + disappear LAST_TALKED + loadfont + writetext .text_found + playsound SFX_ITEM + pause 60 + itemnotify + loadmovesprites + end +; 0x122e3 + +.no_room: ; 0x122e3 + loadfont + writetext .text_found + closetext + writetext .text_bag_full + closetext + loadmovesprites + end +; 0x122ee + +.text_found: ; 0x122ee + ; found @ ! + text_jump UnknownText_0x1c0a1c + db "@" +; 0x122f3 + +.text_bag_full: ; 0x122f3 + ; But can't carry any more items. + text_jump UnknownText_0x1c0a2c + db "@" +; 0x122f8 + +.TryReceiveItem: ; 122f8 + xor a + ld [ScriptVar], a + ld a, [EngineBuffer1] + ld [wd265], a + call GetItemName + ld hl, StringBuffer3 + call CopyName2 + ld a, [EngineBuffer1] + ld [CurItem], a + ld a, [CurFruit] + ld [wItemQuantityChangeBuffer], a + ld hl, NumItems + call ReceiveItem + ret nc + ld a, $1 + ld [ScriptVar], a + ret +; 12324 diff --git a/event/itemfinder.asm b/event/itemfinder.asm new file mode 100755 index 000000000..23de57058 --- /dev/null +++ b/event/itemfinder.asm @@ -0,0 +1,58 @@ +ItemFinder: ; 12580 + callba CheckForSignpostItems + jr c, .found_something + ld hl, .Script_FoundNothing + jr .resume + +.found_something + ld hl, .Script_FoundSomething + +.resume + call QueueScript + ld a, $1 + ld [wd0ec], a + ret +; 12599 + +.ItemfinderSound: ; 12599 + ld c, $4 +.sfx_loop + push bc + ld de, SFX_SECOND_PART_OF_ITEMFINDER + call WaitPlaySFX + ld de, SFX_TRANSACTION + call WaitPlaySFX + pop bc + dec c + jr nz, .sfx_loop + ret +; 125ad + +.Script_FoundSomething: ; 0x125ad + reloadmappart + special UpdateTimePals + callasm .ItemfinderSound + writetext .Text_FoundSomething + loadmovesprites + end +; 0x125ba + +.Script_FoundNothing: ; 0x125ba + reloadmappart + special UpdateTimePals + writetext .Text_FoundNothing + loadmovesprites + end +; 0x125c3 + +.Text_FoundSomething: ; 0x125c3 + ; Yes! ITEMFINDER indicates there's an item nearby. + text_jump UnknownText_0x1c0a77 + db "@" +; 0x125c8 + +.Text_FoundNothing: ; 0x125c8 + ; Nope! ITEMFINDER isn't responding. + text_jump UnknownText_0x1c0aa9 + db "@" +; 0x125cd diff --git a/event/kurt.asm b/event/kurt.asm index 5e3433964..8f9dd4fd6 100644 --- a/event/kurt.asm +++ b/event/kurt.asm @@ -23,7 +23,7 @@ UnknownText_0x88013: ; 0x88013 ; 0x88018 Special_SelectApricornForKurt: ; 88018 - call LoadPartyMenuDataHeader + call LoadStandardMenuDataHeader ld c, $1 xor a ld [wd0e4], a diff --git a/event/mom.asm b/event/mom.asm index 801787c52..987f4bf0c 100644 --- a/event/mom.asm +++ b/event/mom.asm @@ -103,7 +103,7 @@ endr .AccessBankOfMom: ; 162a8 ld hl, UnknownText_0x1665d call PrintText - call LoadPartyMenuDataHeader + call LoadStandardMenuDataHeader ld hl, MenuDataHeader_0x166b5 call CopyMenuDataHeader call InterpretMenu2 @@ -148,7 +148,7 @@ endr ld [hl], a ld a, $5 ld [wcf64], a - call LoadPartyMenuDataHeader + call LoadStandardMenuDataHeader call Function16517 call Function1656b call Function16571 @@ -216,7 +216,7 @@ endr ld [hl], a ld a, $5 ld [wcf64], a - call LoadPartyMenuDataHeader + call LoadStandardMenuDataHeader call Function16512 call Function1656b call Function16571 diff --git a/event/move_deleter.asm b/event/move_deleter.asm index 0cd677dbe..617e3b86d 100644 --- a/event/move_deleter.asm +++ b/event/move_deleter.asm @@ -19,7 +19,7 @@ MoveDeletion: jr z, .asm_2c5ca ld hl, UnknownText_0x2c5ea call PrintText - call LoadPartyMenuDataHeader + call LoadStandardMenuDataHeader callba Function12f5b push af call Function2b74 diff --git a/event/whiteout.asm b/event/whiteout.asm new file mode 100755 index 000000000..6cf6976cf --- /dev/null +++ b/event/whiteout.asm @@ -0,0 +1,84 @@ +Script_BattleWhiteout:: ; 0x124c1 + callasm BattleBGMap + jump Script_Whiteout +; 0x124c8 + +Script_OverworldWhiteout:: ; 0x124c8 + refreshscreen $0 + callasm OverworldBGMap + +Script_Whiteout: ; 0x124ce + writetext .WhitedOutText + closetext + special FadeBlackBGMap + pause 40 + special HealParty + checkflag ENGINE_BUG_CONTEST_TIMER + iftrue .bug_contest + callasm HalveMoney + callasm GetWhiteoutSpawn + farscall Script_AbortBugContest + special WarpToSpawnPoint + newloadmap MAPSETUP_WARP + resetfuncs + +.bug_contest + jumpstd bugcontestresultswarp +; 0x124f5 + +.WhitedOutText: ; 0x124f5 + ; is out of useable #MON! whited out! + text_jump UnknownText_0x1c0a4e + db "@" +; 0x124fa + +OverworldBGMap: ; 124fa + call ClearPalettes + call ClearScreen + call Function3200 + call HideSprites + call Function4f0 + ret +; 1250a + +BattleBGMap: ; 1250a + ld b, $0 + call GetSGBLayout + call SetPalettes + ret +; 12513 + +HalveMoney: ; 12513 + +; Empty function... + callba MobileFn_1060c7 + +; Halve the player's money. + ld hl, Money + ld a, [hl] + srl a + ld [hli], a + ld a, [hl] + rra + ld [hli], a + ld a, [hl] + rra + ld [hl], a + ret +; 12527 + + +GetWhiteoutSpawn: ; 12527 + ld a, [wLastSpawnMapGroup] + ld d, a + ld a, [wLastSpawnMapNumber] + ld e, a + callba IsSpawnPoint + ld a, c + jr c, .yes + xor a ; SPAWN_HOME + +.yes + ld [wd001], a + ret +; 1253d |