diff options
| author | dannye <33dannye@gmail.com> | 2023-11-20 00:33:27 -0600 |
|---|---|---|
| committer | dannye <33dannye@gmail.com> | 2023-11-20 20:23:27 -0600 |
| commit | 298e99d3776580585c3f434e5d93137ae431bdd3 (patch) | |
| tree | a808c4ffd0fd0f9bd28972bae5236e0d3345c8e5 /scripts/SafariZoneGate_2.asm | |
| parent | Add sound bits documentation for wOptions (#110) (diff) | |
| parent | Name 2 unnamed labels I missed in SeafoamIslandsB4F and PokemonMansion3F (#437) (diff) | |
| download | pokeyellow-298e99d3776580585c3f434e5d93137ae431bdd3.tar.gz pokeyellow-298e99d3776580585c3f434e5d93137ae431bdd3.tar.xz pokeyellow-298e99d3776580585c3f434e5d93137ae431bdd3.zip | |
Merge branch 'master' of https://github.com/pret/pokered
Diffstat (limited to 'scripts/SafariZoneGate_2.asm')
| -rw-r--r-- | scripts/SafariZoneGate_2.asm | 252 |
1 files changed, 252 insertions, 0 deletions
diff --git a/scripts/SafariZoneGate_2.asm b/scripts/SafariZoneGate_2.asm new file mode 100644 index 00000000..d760ed83 --- /dev/null +++ b/scripts/SafariZoneGate_2.asm @@ -0,0 +1,252 @@ +SafariZoneGatePrintSafariZoneWorker1WouldYouLikeToJoinText:: + ld hl, .WelcomeText + call PrintText + ld a, MONEY_BOX + ld [wTextBoxID], a + call DisplayTextBoxID + call YesNoChoice + ld a, [wCurrentMenuItem] + and a + jp nz, .PleaseComeAgain + ld hl, wPlayerMoney + ld a, [hli] + or [hl] + inc hl + or [hl] + jr nz, .has_positive_balance + call SafariZoneEntranceGetLowCostAdmissionText + jr c, .CantPayWalkDown + jr .poor_mans_discount + +.has_positive_balance + xor a + ldh [hMoney], a + ld a, $05 + ldh [hMoney + 1], a + ld a, $00 + ldh [hMoney + 2], a + call HasEnoughMoney + jr nc, .success + ld hl, .NotEnoughMoneyText + call PrintText + call SafariZoneEntranceCalculateLowCostAdmission + jr c, .CantPayWalkDown + jr .poor_mans_discount + +.success + xor a + ld [wPriceTemp], a + ld a, $05 + ld [wPriceTemp + 1], a + ld a, $00 + ld [wPriceTemp + 2], a + ld hl, wPriceTemp + 2 + ld de, wPlayerMoney + 2 + ld c, 3 + predef SubBCDPredef + ld a, SFX_PURCHASE + call PlaySoundWaitForCurrent + call WaitForSoundToFinish + ld a, MONEY_BOX + ld [wTextBoxID], a + call DisplayTextBoxID + ld hl, .MakePaymentText + call PrintText + ld a, 30 + ld hl, 502 +.poor_mans_discount + ld [wNumSafariBalls], a + ld a, h + ld [wSafariSteps], a + ld a, l + ld [wSafariSteps + 1], a + ld a, D_UP + ld c, 3 + call SafariZoneEntranceAutoWalk2 + SetEvent EVENT_IN_SAFARI_ZONE + ResetEventReuseHL EVENT_SAFARI_GAME_OVER + ld a, SCRIPT_SAFARIZONEGATE_PLAYER_MOVING + ld [wSafariZoneGateCurScript], a + jr .done + +.PleaseComeAgain + ld hl, .PleaseComeAgainText + call PrintText +.CantPayWalkDown + ld a, D_DOWN + ld c, 1 + call SafariZoneEntranceAutoWalk2 + ld a, SCRIPT_SAFARIZONEGATE_PLAYER_MOVING_DOWN + ld [wSafariZoneGateCurScript], a +.done + ret + +.WelcomeText + text_far _SafariZoneGateSafariZoneWorker1WouldYouLikeToJoinText + text_end + +.MakePaymentText + text_far _SafariZoneGateSafariZoneWorker1ThatllBe500PleaseText + sound_get_item_1 + text_far _SafariZoneGateSafariZoneWorker1CallYouOnThePAText + text_end + +.PleaseComeAgainText + text_far _SafariZoneGateSafariZoneWorker1PleaseComeAgainText + text_end + +.NotEnoughMoneyText + text_far _SafariZoneGateSafariZoneWorker1NotEnoughMoneyText + text_end + +SafariZoneGatePrintSafariZoneWorker2Text:: + ld hl, .FirstTimeHereText + call PrintText + call YesNoChoice + ld a, [wCurrentMenuItem] + and a + ld hl, .YoureARegularHereText + jr nz, .print_text + ld hl, .SafariZoneExplanationText +.print_text + call PrintText + ret + +.FirstTimeHereText + text_far _SafariZoneGateSafariZoneWorker2FirstTimeHereText + text_end + +.SafariZoneExplanationText + text_far _SafariZoneGateSafariZoneWorker2SafariZoneExplanationText + text_end + +.YoureARegularHereText + text_far _SafariZoneGateSafariZoneWorker2YoureARegularHereText + text_end + +SafariZoneEntranceAutoWalk2: + push af + ld b, 0 + ld a, c + ld [wSimulatedJoypadStatesIndex], a + ld hl, wSimulatedJoypadStatesEnd + pop af + call FillMemory + jp StartSimulatingJoypadStates + +SafariZoneEntranceCalculateLowCostAdmission: + ld hl, wPlayerMoney + ld de, hMoney + ld bc, $3 + call CopyData + xor a + ldh [hDivideBCDDivisor], a + ldh [hDivideBCDDivisor + 1], a + ld a, 23 + ldh [hDivideBCDDivisor + 2], a + predef DivideBCDPredef3 + ldh a, [hDivideBCDQuotient + 2] + call SafariZoneEntranceConvertBCDtoNumber + push af + ld hl, wPlayerMoney + xor a + ld bc, $3 + call FillMemory + ld hl, SafariZoneEntranceText_f20c4 + call PrintText_NoCreatingTextBox + ld a, MONEY_BOX + ld [wTextBoxID], a + call DisplayTextBoxID + ld hl, SafariZoneEntranceText_f20c9 + call PrintText + pop af + inc a + jr z, .max_balls + cp 29 + jr c, .load_balls +.max_balls + ld a, 29 +.load_balls + ld hl, 502 + and a + ret + +SafariZoneEntranceText_f20c4: + text_far _SafariZoneLowCostText1 + text_end + +SafariZoneEntranceText_f20c9: + text_far _SafariZoneLowCostText2 + text_end + +SafariZoneEntranceGetLowCostAdmissionText: + ld hl, wSafariSteps + ld a, [hl] + push af + inc [hl] + ld e, a + ld d, $0 + ld hl, Pointers_f2100 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + call PrintText + pop af + cp $3 + jr z, .give_one_ball + scf + ret + +.give_one_ball + ld hl, SafariZoneEntranceText_f20f6 + call PrintText_NoCreatingTextBox + ld a, $1 + ld hl, 502 + and a + ret + +SafariZoneEntranceText_f20f6: + text_far _SafariZoneLowCostText3 + sound_get_item_1 + text_far _SafariZoneLowCostText4 + text_end + +Pointers_f2100: + dw SafariZoneEntranceText_f210a + dw SafariZoneEntranceText_f210f + dw SafariZoneEntranceText_f2114 + dw SafariZoneEntranceText_f2119 + dw SafariZoneEntranceText_f2119 + +SafariZoneEntranceText_f210a: + text_far _SafariZoneLowCostText5 + text_end + +SafariZoneEntranceText_f210f: + text_far _SafariZoneLowCostText6 + text_end + +SafariZoneEntranceText_f2114: + text_far _SafariZoneLowCostText7 + text_end + +SafariZoneEntranceText_f2119: + text_far _SafariZoneLowCostText8 + text_end + +SafariZoneEntranceConvertBCDtoNumber: + push hl + ld c, a + and $f + ld l, a + ld h, $0 + ld a, c + and $f0 + swap a + ld bc, 10 + call AddNTimes + ld a, l + pop hl + ret |
