diff options
author | PikalaxALT <PikalaxALT@gmail.com> | 2015-11-18 10:42:42 -0500 |
---|---|---|
committer | PikalaxALT <PikalaxALT@gmail.com> | 2015-11-18 10:42:42 -0500 |
commit | 6d47be8d8c02317a963c6ff5266a50a8674d285d (patch) | |
tree | ef57261cd28ea077a00185d6ae1083e80295f356 | |
parent | bc1870e3f499973fd656d37d134e3f9e4757c980 (diff) |
Fruit tree constants, more mail engine
-rw-r--r-- | constants/map_constants.asm | 33 | ||||
-rw-r--r-- | constants/misc_constants.asm | 1 | ||||
-rwxr-xr-x | engine/mail.asm | 433 | ||||
-rw-r--r-- | engine/scripting.asm | 2 | ||||
-rw-r--r-- | main.asm | 427 | ||||
-rw-r--r-- | maps/AzaleaTown.asm | 2 | ||||
-rw-r--r-- | maps/FuchsiaCity.asm | 2 | ||||
-rw-r--r-- | maps/PewterCity.asm | 4 | ||||
-rw-r--r-- | maps/Route1.asm | 2 | ||||
-rw-r--r-- | maps/Route11.asm | 2 | ||||
-rw-r--r-- | maps/Route2.asm | 2 | ||||
-rw-r--r-- | maps/Route26.asm | 2 | ||||
-rw-r--r-- | maps/Route29.asm | 2 | ||||
-rw-r--r-- | maps/Route30.asm | 4 | ||||
-rw-r--r-- | maps/Route31.asm | 98 | ||||
-rw-r--r-- | maps/Route33.asm | 2 | ||||
-rw-r--r-- | maps/Route35.asm | 2 | ||||
-rw-r--r-- | maps/Route36.asm | 2 | ||||
-rw-r--r-- | maps/Route37.asm | 6 | ||||
-rw-r--r-- | maps/Route38.asm | 2 | ||||
-rw-r--r-- | maps/Route39.asm | 2 | ||||
-rw-r--r-- | maps/Route42.asm | 6 | ||||
-rw-r--r-- | maps/Route43.asm | 2 | ||||
-rw-r--r-- | maps/Route44.asm | 2 | ||||
-rw-r--r-- | maps/Route45.asm | 2 | ||||
-rw-r--r-- | maps/Route46.asm | 4 | ||||
-rw-r--r-- | maps/Route8.asm | 2 | ||||
-rw-r--r-- | maps/VioletCity.asm | 2 | ||||
-rwxr-xr-x | misc/battle_tower_5c.asm | 96 | ||||
-rwxr-xr-x | misc/mobile_5c.asm | 103 | ||||
-rw-r--r-- | sram.asm | 5 | ||||
-rw-r--r-- | wram.asm | 5 |
32 files changed, 653 insertions, 608 deletions
diff --git a/constants/map_constants.asm b/constants/map_constants.asm index bdc1319ae..6ff5bc55b 100644 --- a/constants/map_constants.asm +++ b/constants/map_constants.asm @@ -665,3 +665,36 @@ EMOTE_OBJECT EQU 7 const PERSONTYPE_4 const PERSONTYPE_5 const PERSONTYPE_6 + +; fruit trees +const_value SET 1 + const FRUITTREE_ROUTE_29 + const FRUITTREE_ROUTE_30_1 + const FRUITTREE_ROUTE_38 + const FRUITTREE_ROUTE_46_1 + const FRUITTREE_ROUTE_30_2 + const FRUITTREE_ROUTE_33 + const FRUITTREE_ROUTE_31 + const FRUITTREE_ROUTE_43 + const FRUITTREE_VIOLET_CITY + const FRUITTREE_ROUTE_46_2 + const FRUITTREE_ROUTE_35 + const FRUITTREE_ROUTE_45 + const FRUITTREE_ROUTE_36 + const FRUITTREE_ROUTE_26 + const FRUITTREE_ROUTE_39 + const FRUITTREE_ROUTE_44 + const FRUITTREE_ROUTE_37_1 + const FRUITTREE_ROUTE_37_2 + const FRUITTREE_ROUTE_37_3 + const FRUITTREE_AZALEA_TOWN + const FRUITTREE_ROUTE_42_1 + const FRUITTREE_ROUTE_42_2 + const FRUITTREE_ROUTE_42_3 + const FRUITTREE_ROUTE_11 + const FRUITTREE_ROUTE_2 + const FRUITTREE_ROUTE_1 + const FRUITTREE_ROUTE_8 + const FRUITTREE_PEWTER_CITY_1 + const FRUITTREE_PEWTER_CITY_2 + const FRUITTREE_FUCHSIA_CITY diff --git a/constants/misc_constants.asm b/constants/misc_constants.asm index 964783a5e..741750e34 100644 --- a/constants/misc_constants.asm +++ b/constants/misc_constants.asm @@ -35,6 +35,7 @@ NUM_BOXES EQU 14 ; mail MAIL_STRUCT_LENGTH EQU $2f MAILBOX_CAPACITY EQU 10 +MAIL_MSG_LENGTH EQU $20 ; hall of fame HOF_MON_LENGTH = 1 + 2 + 2 + 1 + (PKMN_NAME_LENGTH +- 1) ; species, id, dvs, level, nick diff --git a/engine/mail.asm b/engine/mail.asm index e3b7a5fab..5748536dc 100755 --- a/engine/mail.asm +++ b/engine/mail.asm @@ -39,7 +39,8 @@ SendMailToPC: ; 4456e ret ; 445c0 -Function445c0: ; 445c0 (11:45c0) +DeleteMailFromPC: ; 445c0 (11:45c0) +; Shift all mail messages in the mailbox ld a, BANK(sMailboxCount) call GetSRAMBank ld a, b @@ -53,7 +54,7 @@ Function445c0: ; 445c0 (11:45c0) pop bc .loop ld a, b - cp $9 + cp MAILBOX_CAPACITY - 1 jr z, .done push bc ld bc, MAIL_STRUCT_LENGTH @@ -82,7 +83,7 @@ ReadMailMessage: ; 445f4 callba ReadAnyMail ret -Function44607: ; 44607 +MoveMailFromPCToParty: ; 44607 ld a, BANK(sMailboxCount) call GetSRAMBank push bc @@ -112,7 +113,7 @@ Function44607: ; 44607 ld [hl], d call CloseSRAM pop bc - jp Function445c0 + jp DeleteMailFromPC ; 44648 (11:4648) GetMailboxCount: ; 44648 @@ -123,12 +124,13 @@ GetMailboxCount: ; 44648 jp CloseSRAM ; 44654 -Function44654:: ; 44654 +CheckPokeItem:: ; 44654 push bc push de callba SelectMonFromParty ld a, $2 - jr c, .asm_446c6 + jr c, .pop_return + ld a, [CurPartyMon] ld hl, PartyMon1Item ld bc, PARTYMON_STRUCT_LENGTH @@ -136,7 +138,8 @@ Function44654:: ; 44654 ld d, [hl] callba ItemIsMail ld a, $3 - jr nc, .asm_446c6 + jr nc, .pop_return + ld a, BANK(sPartyMail) call GetSRAMBank ld a, [CurPartyMon] @@ -148,43 +151,437 @@ Function44654:: ; 44654 pop hl pop bc - ld a, $20 +; Compare the mail message, byte for byte, with the expected message. + ld a, MAIL_MSG_LENGTH ld [wd265], a -.asm_44691 +.loop ld a, [de] ld c, a ld a, b call GetFarByte cp "@" - jr z, .asm_446ab + jr z, .done cp c ld a, $0 - jr nz, .asm_446c1 + jr nz, .close_sram_return inc hl inc de ld a, [wd265] dec a ld [wd265], a - jr nz, .asm_44691 + jr nz, .loop -.asm_446ab +.done callba CheckCurPartyMonFainted ld a, $4 - jr c, .asm_446c1 + jr c, .close_sram_return xor a ld [wPokemonWithdrawDepositParameter], a callba Functione039 ld a, $1 -.asm_446c1 +.close_sram_return call CloseSRAM - jr .asm_446c8 + jr .return -.asm_446c6 +.pop_return pop de pop bc -.asm_446c8 +.return ld [ScriptVar], a ret ; 446cc + + +GivePokeItem:: ; 446cc + ld a, [PartyCount] + dec a + push af + push bc + ld hl, PartyMon1Item + ld bc, PARTYMON_STRUCT_LENGTH + call AddNTimes + pop bc + ld [hl], b + pop af + push bc + push af + ld hl, sPartyMail + ld bc, $2f + call AddNTimes + ld d, h + ld e, l + ld hl, wd002 + ld bc, $21 + ld a, BANK(sPartyMail) + call GetSRAMBank + call CopyBytes + pop af + push af + ld hl, PartyMonOT + ld bc, NAME_LENGTH + call AddNTimes + ld bc, $a + call CopyBytes + pop af + ld hl, PartyMon1ID + ld bc, PARTYMON_STRUCT_LENGTH + call AddNTimes + ld a, [hli] + ld [de], a + inc de + ld a, [hl] + ld [de], a + inc de + ld a, [CurPartySpecies] + ld [de], a + inc de + pop bc + ld a, b + ld [de], a + jp CloseSRAM +; 44725 + + +BackupPartyMonMail: ; 44725 + ld a, BANK(sPartyMail) + call GetSRAMBank + ld hl, sPartyMail + ld de, sPartyMailBackup + ld bc, 6 * MAIL_STRUCT_LENGTH + call CopyBytes + ld hl, sMailboxCount + ld de, sMailboxCountBackup + ld bc, 1 + 10 * MAIL_STRUCT_LENGTH + call CopyBytes + jp CloseSRAM +; 44745 + +RestorePartyMonMail: ; 44745 (11:4745) + ld a, BANK(sPartyMail) + call GetSRAMBank + ld hl, sPartyMailBackup + ld de, sPartyMail + ld bc, 6 * MAIL_STRUCT_LENGTH + call CopyBytes + ld hl, sMailboxCountBackup + ld de, sMailboxCount + ld bc, 1 + 10 * MAIL_STRUCT_LENGTH + call CopyBytes + jp CloseSRAM + +DeletePartyMonMail: ; 44765 (11:4765) + ld a, BANK(sPartyMail) + call GetSRAMBank + xor a + ld hl, sPartyMail + ld bc, 6 * MAIL_STRUCT_LENGTH + call ByteFill + xor a + ld hl, sMailboxCount + ld bc, 1 + 10 * MAIL_STRUCT_LENGTH + call ByteFill + jp CloseSRAM +; 44781 (11:4781) + + +Function44781: ; 44781 + ld a, [PartyCount] + and a + jr z, .asm_4479e + ld e, a + ld hl, PartyMon1Item +.asm_4478b + ld d, [hl] + push hl + push de + callba ItemIsMail + pop de + pop hl + ret c + ld bc, PARTYMON_STRUCT_LENGTH + add hl, bc + dec e + jr nz, .asm_4478b + +.asm_4479e + and a + ret +; 447a0 + +_KrisMailBoxMenu: ; 0x447a0 + call InitMail + jr z, .nomail + call LoadStandardMenuDataHeader + call MailboxPC + jp WriteBackup + +.nomail + ld hl, .EmptyMailboxText + jp MenuTextBoxBackup +; 0x447b4 + +.EmptyMailboxText ; 0x447b4 + text_jump _EmptyMailboxText + db "@" + +InitMail: ; 0x447b9 +; initialize wd0f2 and beyond with incrementing values, one per mail +; set z if no mail + ld a, BANK(sMailboxCount) + call GetSRAMBank + ld a, [sMailboxCount] + call CloseSRAM + ld hl, wd0f2 + ld [hli], a + and a + + jr z, .done ; if no mail, we're done + + ; load values in memory with incrementing values starting at wd0f2 + ld b, a + ld a, $1 +.loop + ld [hli], a + inc a + dec b + jr nz, .loop +.done + ld [hl], $ff ; terminate + + ld a, [wd0f2] + and a + ret +; 0x447da + +Function447da: ; 0x447da + dec a + ld hl, sMailbox1Author + ld bc, MAIL_STRUCT_LENGTH + call AddNTimes + ld a, BANK(sMailboxCount) + call GetSRAMBank + ld de, StringBuffer2 + push de + ld bc, NAME_LENGTH - 1 + call CopyBytes + ld a, "@" + ld [de], a + call CloseSRAM + pop de + ret +; 0x447fb + +Function447fb: ; 0x447fb + push de + ld a, [MenuSelection] + call Function447da + pop hl + jp PlaceString +; 0x44806 + +MailboxPC: ; 0x44806 + xor a + ld [OBPals + 8 * 6], a + ld a, $1 + ld [wd0f1], a +.loop + call InitMail + ld hl, MenuData4494c + call CopyMenuDataHeader + xor a + ld [hBGMapMode], a + call InitScrollingMenu + call UpdateSprites + ld a, [wd0f1] + ld [wMenuCursorBuffer], a + ld a, [OBPals + 8 * 6] + ld [wd0e4], a + call HandleScrollingMenu + ld a, [wd0e4] + ld [OBPals + 8 * 6], a + ld a, [MenuSelection2] + ld [wd0f1], a + ld a, [wcf73] + cp $2 + jr z, .exit + call Function4484a + jr .loop + +.exit + xor a + ret +; 0x4484a + +Function4484a: ; 0x4484a + ld hl, MenuData44964 + call LoadMenuDataHeader + call InterpretMenu2 + call ExitMenu + jr c, .exit + ld a, [MenuSelection2] + dec a + ld hl, .JumpTable + rst JumpTable + +.exit + ret +; 0x44861 + +.JumpTable + dw .ReadMail + dw .PutInPack + dw .AttachMail + dw .Cancel + +.ReadMail ; 0x44869 + call FadeToMenu + ld a, [MenuSelection] + dec a + ld b, a + call ReadMailMessage + jp ReturnToCallingMenu +; 0x44877 + +.PutInPack ; 0x44877 + ld hl, .MessageLostText + call MenuTextBox + call YesNoBox + call ExitMenu + ret c + ld a, [MenuSelection] + dec a + call .GetMailType + ld a, $1 + ld [wItemQuantityChangeBuffer], a + ld hl, NumItems + call ReceiveItem + jr c, .put_in_bag + ld hl, .PackFullText + jp MenuTextBoxBackup + +.put_in_bag + ld a, [MenuSelection] + dec a + ld b, a + call DeleteMailFromPC + ld hl, .PutAwayText + jp MenuTextBoxBackup +; 0x448ac + +.PutAwayText ; 0x448ac + text_jump ClearedMailPutAwayText + db "@" + +.PackFullText ; 0x448b1 + text_jump MailPackFullText + db "@" + +.MessageLostText ; 0x448b6 + text_jump MailMessageLostText + db "@" + +.GetMailType: ; 0x448bb + push af + ld a, BANK(sMailboxCount) + call GetSRAMBank + pop af + ld hl, sMailbox1MailType + ld bc, MAIL_STRUCT_LENGTH + call AddNTimes + ld a, [hl] + ld [CurItem], a + jp CloseSRAM +; 0x448d2 + +.AttachMail ; 0x448d2 + call FadeToMenu + xor a + ld [PartyMenuActionText], a + call ClearBGPalettes +.try_again + callba Function5004f + callba Function50405 + callba Function503e0 + callba WritePartyMenuTilemap + callba PrintPartyMenuText + call WaitBGMap + call SetPalettes + call DelayFrame + callba PartyMenuSelect + jr c, .exit2 + ld a, [CurPartySpecies] + cp EGG + jr z, .egg + ld a, MON_ITEM + call GetPartyParamLocation + ld a, [hl] + and a + jr z, .attach_mail + ld hl, .HoldingMailText + call PrintText + jr .try_again + +.egg + ld hl, .EggText + call PrintText + jr .try_again + +.attach_mail + ld a, [MenuSelection] + dec a + ld b, a + call MoveMailFromPCToParty + ld hl, .MailMovedText + call PrintText + +.exit2 + jp ReturnToCallingMenu +; 0x4493c + +.HoldingMailText ; 0x4493c + text_jump MailAlreadyHoldingItemText + db "@" + +.EggText ; 0x44941 + text_jump MailEggText + db "@" + +.MailMovedText ; 0x44946 + text_jump MailMovedFromBoxText + db "@" + +.Cancel + ret + +MenuData4494c: ; 0x4494c + db %01000000 ; flags + db 1, 8 ; start coords + db $a, $12 ; end coords + dw .MenuData2 + db 1 ; default option + +.MenuData2 + db %00010000 ; flags + db 4, 0 ; rows/columns? + db 1 ; horizontal spacing? + dbw 0,wd0f2 ; text pointer + dba Function447fb + dbw 0,0 + dbw 0,0 + +MenuData44964: ; 0x44964 + db %01000000 ; flags + db 0, 0 ; start coords + db 9, $d ; end coords + dw .MenuData2 + db 1 ; default option + +.MenuData2 + db %10000000 ; flags + db 4 ; items + db "READ MAIL@" + db "PUT IN PACK@" + db "ATTACH MAIL@" + db "CANCEL@" diff --git a/engine/scripting.asm b/engine/scripting.asm index 4aa1de224..f576fa3d4 100644 --- a/engine/scripting.asm +++ b/engine/scripting.asm @@ -2341,7 +2341,7 @@ Script_checkpokeitem: ; 977b7 ld d, a ld a, [ScriptBank] ld b, a - callba Function44654 + callba CheckPokeItem ret ; 977ca @@ -11329,39 +11329,39 @@ Function140ed:: ; 140ed ld a, [StringBuffer2 + 3] sub [hl] dec hl - jr nc, .asm_14102 + jr nc, .okay_secs add 60 -.asm_14102 +.okay_secs ld [de], a dec de ld a, [StringBuffer2 + 2] sbc [hl] dec hl - jr nc, .asm_1410d + jr nc, .okay_mins add 60 -.asm_1410d +.okay_mins ld [de], a dec de ld a, [StringBuffer2 + 1] sbc [hl] dec hl - jr nc, .asm_14118 + jr nc, .okay_hrs add 24 -.asm_14118 +.okay_hrs ld [de], a dec de ld a, [StringBuffer2] sbc [hl] dec hl - jr nc, .asm_14128 + jr nc, .okay_days add 140 ld c, 7 call SimpleDivide -.asm_14128 +.okay_days ld [de], a ret ; 1412a @@ -11371,16 +11371,16 @@ INCLUDE "engine/overworld.asm" Function1499a:: ; 1499a ld a, [PlayerNextTile] cp $60 - jr z, .asm_149ad + jr z, .warp cp $68 - jr z, .asm_149ad + jr z, .warp and $f0 cp $70 - jr z, .asm_149ad + jr z, .warp and a ret -.asm_149ad +.warp scf ret ; 149af @@ -11388,17 +11388,17 @@ Function1499a:: ; 1499a Function149af:: ; 149af ld a, [PlayerNextTile] cp $70 - jr z, .asm_149c4 + jr z, .not_warp cp $76 - jr z, .asm_149c4 + jr z, .not_warp cp $78 - jr z, .asm_149c4 + jr z, .not_warp cp $7e - jr z, .asm_149c4 + jr z, .not_warp scf ret -.asm_149c4 +.not_warp xor a ret ; 149c6 @@ -17959,399 +17959,6 @@ INCLUDE "data/pokedex/entry_pointers.asm" INCLUDE "engine/mail.asm" -GivePokeItem:: ; 446cc - ld a, [PartyCount] - dec a - push af - push bc - ld hl, PartyMon1Item - ld bc, PARTYMON_STRUCT_LENGTH - call AddNTimes - pop bc - ld [hl], b - pop af - push bc - push af - ld hl, sPartyMail - ld bc, $2f - call AddNTimes - ld d, h - ld e, l - ld hl, wd002 - ld bc, $21 - ld a, BANK(sPartyMail) - call GetSRAMBank - call CopyBytes - pop af - push af - ld hl, PartyMonOT - ld bc, NAME_LENGTH - call AddNTimes - ld bc, $a - call CopyBytes - pop af - ld hl, PartyMon1ID - ld bc, PARTYMON_STRUCT_LENGTH - call AddNTimes - ld a, [hli] - ld [de], a - inc de - ld a, [hl] - ld [de], a - inc de - ld a, [CurPartySpecies] - ld [de], a - inc de - pop bc - ld a, b - ld [de], a - jp CloseSRAM -; 44725 - - -BackupPartyMonMail: ; 44725 - ld a, BANK(sPartyMail) - call GetSRAMBank - ld hl, sPartyMail - ld de, sPartyMailBackup - ld bc, 6 * MAIL_STRUCT_LENGTH - call CopyBytes - ld hl, sMailboxCount - ld de, sMailboxCountBackup - ld bc, 1 + 10 * MAIL_STRUCT_LENGTH - call CopyBytes - jp CloseSRAM -; 44745 - -RestorePartyMonMail: ; 44745 (11:4745) - ld a, BANK(sPartyMail) - call GetSRAMBank - ld hl, sPartyMailBackup - ld de, sPartyMail - ld bc, 6 * MAIL_STRUCT_LENGTH - call CopyBytes - ld hl, sMailboxCountBackup - ld de, sMailboxCount - ld bc, 1 + 10 * MAIL_STRUCT_LENGTH - call CopyBytes - jp CloseSRAM - -DeletePartyMonMail: ; 44765 (11:4765) - ld a, BANK(sPartyMail) - call GetSRAMBank - xor a - ld hl, sPartyMail - ld bc, 6 * MAIL_STRUCT_LENGTH - call ByteFill - xor a - ld hl, sMailboxCount - ld bc, 1 + 10 * MAIL_STRUCT_LENGTH - call ByteFill - jp CloseSRAM -; 44781 (11:4781) - - -Function44781: ; 44781 - ld a, [PartyCount] - and a - jr z, .asm_4479e - ld e, a - ld hl, PartyMon1Item -.asm_4478b - ld d, [hl] - push hl - push de - callba ItemIsMail - pop de - pop hl - ret c - ld bc, PARTYMON_STRUCT_LENGTH - add hl, bc - dec e - jr nz, .asm_4478b - -.asm_4479e - and a - ret -; 447a0 - -_KrisMailBoxMenu: ; 0x447a0 - call InitMail - jr z, .nomail - call LoadStandardMenuDataHeader - call Function44806 - jp WriteBackup - -.nomail - ld hl, .EmptyMailboxText - jp MenuTextBoxBackup -; 0x447b4 - -.EmptyMailboxText ; 0x447b4 - text_jump _EmptyMailboxText - db "@" - -InitMail: ; 0x447b9 -; initialize wd0f2 and beyond with incrementing values, one per mail -; set z if no mail - ld a, BANK(sMailboxCount) - call GetSRAMBank - ld a, [sMailboxCount] - call CloseSRAM - ld hl, wd0f2 - ld [hli], a - and a - - jr z, .done ; if no mail, we're done - - ; load values in memory with incrementing values starting at wd0f2 - ld b, a - ld a, $1 -.loop - ld [hli], a - inc a - dec b - jr nz, .loop -.done - ld [hl], $ff ; terminate - - ld a, [wd0f2] - and a - ret -; 0x447da - -Function447da: ; 0x447da - dec a - ld hl, sMailbox + MON_HP - 1 - ld bc, MAIL_STRUCT_LENGTH - call AddNTimes - ld a, BANK(sMailboxCount) - call GetSRAMBank - ld de, StringBuffer2 - push de - ld bc, NAME_LENGTH - 1 - call CopyBytes - ld a, "@" - ld [de], a - call CloseSRAM - pop de - ret -; 0x447fb - -Function447fb: ; 0x447fb - push de - ld a, [MenuSelection] - call Function447da - pop hl - jp PlaceString -; 0x44806 - -Function44806: ; 0x44806 - xor a - ld [OBPals + 8 * 6], a - ld a, $1 - ld [wd0f1], a -.asm_4480f - call InitMail - ld hl, MenuData4494c - call CopyMenuDataHeader - xor a - ld [hBGMapMode], a - call InitScrollingMenu - call UpdateSprites - ld a, [wd0f1] - ld [wMenuCursorBuffer], a - ld a, [OBPals + 8 * 6] - ld [wd0e4], a - call HandleScrollingMenu - ld a, [wd0e4] - ld [OBPals + 8 * 6], a - ld a, [MenuSelection2] - ld [wd0f1], a - ld a, [wcf73] - cp $2 - jr z, .asm_44848 - call Function4484a - jr .asm_4480f - -.asm_44848 - xor a - ret -; 0x4484a - -Function4484a: ; 0x4484a - ld hl, MenuData44964 - call LoadMenuDataHeader - call InterpretMenu2 - call ExitMenu - jr c, .asm_44860 - ld a, [MenuSelection2] - dec a - ld hl, .JumpTable - rst JumpTable - -.asm_44860 - ret -; 0x44861 - -.JumpTable - dw .ReadMail - dw .PutInPack - dw .AttachMail - dw .Cancel - -.ReadMail ; 0x44869 - call FadeToMenu - ld a, [MenuSelection] - dec a - ld b, a - call ReadMailMessage - jp ReturnToCallingMenu -; 0x44877 - -.PutInPack ; 0x44877 - ld hl, .MessageLostText - call MenuTextBox - call YesNoBox - call ExitMenu - ret c - ld a, [MenuSelection] - dec a - call .Function448bb - ld a, $1 - ld [wItemQuantityChangeBuffer], a - ld hl, NumItems - call ReceiveItem - jr c, .asm_4489e - ld hl, .PackFullText - jp MenuTextBoxBackup - -.asm_4489e - ld a, [MenuSelection] - dec a - ld b, a - call Function445c0 - ld hl, .PutAwayText - jp MenuTextBoxBackup -; 0x448ac - -.PutAwayText ; 0x448ac - text_jump ClearedMailPutAwayText - db "@" - -.PackFullText ; 0x448b1 - text_jump MailPackFullText - db "@" - -.MessageLostText ; 0x448b6 - text_jump MailMessageLostText - db "@" - -.Function448bb: ; 0x448bb - push af - ld a, BANK(sMailboxCount) - call GetSRAMBank - pop af - ld hl, sMailbox + $2e - ld bc, $2f - call AddNTimes - ld a, [hl] - ld [CurItem], a - jp CloseSRAM -; 0x448d2 - -.AttachMail ; 0x448d2 - call FadeToMenu - xor a - ld [PartyMenuActionText], a - call ClearBGPalettes -.try_again - callba Function5004f - callba Function50405 - callba Function503e0 - callba WritePartyMenuTilemap - callba PrintPartyMenuText - call WaitBGMap - call SetPalettes - call DelayFrame - callba PartyMenuSelect - jr c, .exit - ld a, [CurPartySpecies] - cp EGG - jr z, .egg - ld a, MON_ITEM - call GetPartyParamLocation - ld a, [hl] - and a - jr z, .attach_mail - ld hl, .HoldingMailText - call PrintText - jr .try_again - -.egg - ld hl, .EggText - call PrintText - jr .try_again - -.attach_mail - ld a, [MenuSelection] - dec a - ld b, a - call Function44607 - ld hl, .MailMovedText - call PrintText - -.exit - jp ReturnToCallingMenu -; 0x4493c - -.HoldingMailText ; 0x4493c - text_jump MailAlreadyHoldingItemText - db "@" - -.EggText ; 0x44941 - text_jump MailEggText - db "@" - -.MailMovedText ; 0x44946 - text_jump MailMovedFromBoxText - db "@" - -.Cancel - ret - -MenuData4494c: ; 0x4494c - db %01000000 ; flags - db 1, 8 ; start coords - db $a, $12 ; end coords - dw .MenuData2 - db 1 ; default option - -.MenuData2 - db %00010000 ; flags - db 4, 0 ; rows/columns? - db 1 ; horizontal spacing? - dbw 0,wd0f2 ; text pointer - dba Function447fb - dbw 0,0 - dbw 0,0 - -MenuData44964: ; 0x44964 - db %01000000 ; flags - db 0, 0 ; start coords - db 9, $d ; end coords - dw .MenuData2 - db 1 ; default option - -.MenuData2 - db %10000000 ; flags - db 4 ; items - db "READ MAIL@" - db "PUT IN PACK@" - db "ATTACH MAIL@" - db "CANCEL@" - - SECTION "bank12", ROMX, BANK[$12] Function48000: ; 48000 diff --git a/maps/AzaleaTown.asm b/maps/AzaleaTown.asm index a40bd316d..95bd0b522 100644 --- a/maps/AzaleaTown.asm +++ b/maps/AzaleaTown.asm @@ -198,7 +198,7 @@ AzaleaTownMartSign: jumpstd martsign WhiteApricornTree: - fruittree $14 + fruittree FRUITTREE_AZALEA_TOWN MapAzaleaTownSignpostItem8: dwb EVENT_AZALEA_TOWN_HIDDEN_FULL_HEAL, FULL_HEAL diff --git a/maps/FuchsiaCity.asm b/maps/FuchsiaCity.asm index bd42f0fc3..1d60f9f6f 100644 --- a/maps/FuchsiaCity.asm +++ b/maps/FuchsiaCity.asm @@ -46,7 +46,7 @@ FuchsiaCityMartSign: jumpstd martsign FruitTreeScript_0x194b43: - fruittree $1e + fruittree FRUITTREE_FUCHSIA_CITY UnknownText_0x194b45: text "One of the ELITE" diff --git a/maps/PewterCity.asm b/maps/PewterCity.asm index 9d5c755b2..ef3dfe610 100644 --- a/maps/PewterCity.asm +++ b/maps/PewterCity.asm @@ -58,10 +58,10 @@ PewterCityMartSign: jumpstd martsign FruitTreeScript_0x18c03e: - fruittree $1c + fruittree FRUITTREE_PEWTER_CITY_1 FruitTreeScript_0x18c040: - fruittree $1d + fruittree FRUITTREE_PEWTER_CITY_2 UnknownText_0x18c042: text "Have you visited" diff --git a/maps/Route1.asm b/maps/Route1.asm index 14d65bf9c..cb29e65ed 100644 --- a/maps/Route1.asm +++ b/maps/Route1.asm @@ -31,7 +31,7 @@ MapRoute1Signpost0Script: jumptext UnknownText_0x1ac675 FruitTreeScript_0x1ac581: - fruittree $1a + fruittree FRUITTREE_ROUTE_1 SchoolboyDannySeenText: text "If trainers meet," diff --git a/maps/Route11.asm b/maps/Route11.asm index ccbfe1499..fde0d1544 100644 --- a/maps/Route11.asm +++ b/maps/Route11.asm @@ -53,7 +53,7 @@ MapRoute11Signpost0Script: jumptext UnknownText_0x68238 FruitTreeScript_0x68055: - fruittree $18 + fruittree FRUITTREE_ROUTE_11 MapRoute11SignpostItem1: dwb EVENT_ROUTE_11_HIDDEN_REVIVE, REVIVE diff --git a/maps/Route2.asm b/maps/Route2.asm index d9748f40b..b97a27845 100644 --- a/maps/Route2.asm +++ b/maps/Route2.asm @@ -57,7 +57,7 @@ ItemFragment_0x1ac304: db ELIXER, 1 FruitTreeScript_0x1ac306: - fruittree $19 + fruittree FRUITTREE_ROUTE_2 MapRoute2SignpostItem2: dwb EVENT_ROUTE_2_HIDDEN_MAX_ETHER, MAX_ETHER diff --git a/maps/Route26.asm b/maps/Route26.asm index f24ab10ac..c1e4d38c9 100644 --- a/maps/Route26.asm +++ b/maps/Route26.asm @@ -239,7 +239,7 @@ MapRoute26Signpost0Script: jumptext UnknownText_0x1a5364 FruitTreeScript_0x1a4ec2: - fruittree $e + fruittree FRUITTREE_ROUTE_26 ItemFragment_0x1a4ec4: db MAX_ELIXER, 1 diff --git a/maps/Route29.asm b/maps/Route29.asm index a0d50b8f2..d33e4050b 100644 --- a/maps/Route29.asm +++ b/maps/Route29.asm @@ -204,7 +204,7 @@ MapRoute29Signpost1Script: jumptext UnknownText_0x1a15b9 FruitTreeScript_0x1a1089: - fruittree $1 + fruittree FRUITTREE_ROUTE_29 ItemFragment_0x1a108b: db POTION, 1 diff --git a/maps/Route30.asm b/maps/Route30.asm index ebc3e9c54..0eab41100 100644 --- a/maps/Route30.asm +++ b/maps/Route30.asm @@ -229,10 +229,10 @@ ItemFragment_0x1a17f5: db ANTIDOTE, 1 FruitTreeScript_0x1a17f7: - fruittree $2 + fruittree FRUITTREE_ROUTE_30_1 FruitTreeScript_0x1a17f9: - fruittree $5 + fruittree FRUITTREE_ROUTE_30_2 MapRoute30SignpostItem4: dwb EVENT_ROUTE_30_HIDDEN_POTION, POTION diff --git a/maps/Route31.asm b/maps/Route31.asm index fc0bc87a4..aa32861ae 100644 --- a/maps/Route31.asm +++ b/maps/Route31.asm @@ -7,14 +7,14 @@ Route31_MapScriptHeader: ; callbacks - dbw 5, UnknownScript_0x1a543c + dbw 5, .CheckMomCall -UnknownScript_0x1a543c: +.CheckMomCall: checkevent EVENT_TALKED_TO_MOM_AFTER_MYSTERY_EGG_QUEST - iffalse UnknownScript_0x1a5443 + iffalse .DoMomCall return -UnknownScript_0x1a5443: +.DoMomCall: specialphonecall SPECIALCALL_WORRIED return @@ -26,31 +26,31 @@ Bug_catcherWade1Script: talkaftercancel loadfont checkflag ENGINE_WADE - iftrue UnknownScript_0x1a5493 + iftrue .WadeRematch checkflag ENGINE_WADE_HAS_ITEM - iftrue UnknownScript_0x1a5507 + iftrue .WadeItem checkcellnum PHONE_BUG_CATCHER_WADE - iftrue UnknownScript_0x1a5558 + iftrue .AcceptedNumberSTD checkevent EVENT_WADE_ASKED_FOR_PHONE_NUMBER - iftrue UnknownScript_0x1a547c + iftrue .AskAgain writetext UnknownText_0x1a5671 closetext setevent EVENT_WADE_ASKED_FOR_PHONE_NUMBER - scall UnknownScript_0x1a554c - jump UnknownScript_0x1a547f + scall .AskPhoneNumberSTD + jump .Continue -UnknownScript_0x1a547c: - scall UnknownScript_0x1a5550 -UnknownScript_0x1a547f: +.AskAgain: + scall .AskAgainSTD +.Continue: askforphonenumber PHONE_BUG_CATCHER_WADE - if_equal $1, UnknownScript_0x1a5560 - if_equal $2, UnknownScript_0x1a555c + if_equal $1, .PhoneFullSTD + if_equal $2, .DeclinedNumberSTD trainertotext BUG_CATCHER, WADE1, $0 - scall UnknownScript_0x1a5554 - jump UnknownScript_0x1a5558 + scall .RegisterNumberSTD + jump .AcceptedNumberSTD -UnknownScript_0x1a5493: - scall UnknownScript_0x1a5564 +.WadeRematch: + scall .RematchSTD winlosstext Bug_catcherWade1BeatenText, 0 copybytetovar wWadeFightCount if_equal 4, .Fight4 @@ -109,8 +109,8 @@ UnknownScript_0x1a5493: clearflag ENGINE_WADE end -UnknownScript_0x1a5507: - scall UnknownScript_0x1a5568 +.WadeItem: + scall .ItemSTD checkevent EVENT_WADE_HAS_BERRY iftrue .Berry checkevent EVENT_WADE_HAS_PSNCUREBERRY @@ -136,43 +136,43 @@ UnknownScript_0x1a5507: iffalse .PackFull .Done clearflag ENGINE_WADE_HAS_ITEM - jump UnknownScript_0x1a5558 + jump .AcceptedNumberSTD .PackFull - jump UnknownScript_0x1a556c + jump .PackFullSTD -UnknownScript_0x1a554c: +.AskPhoneNumberSTD: jumpstd asknumber1m end -UnknownScript_0x1a5550: +.AskAgainSTD: jumpstd asknumber2m end -UnknownScript_0x1a5554: +.RegisterNumberSTD: jumpstd registerednumberm end -UnknownScript_0x1a5558: +.AcceptedNumberSTD: jumpstd numberacceptedm end -UnknownScript_0x1a555c: +.DeclinedNumberSTD: jumpstd numberdeclinedm end -UnknownScript_0x1a5560: +.PhoneFullSTD: jumpstd phonefullm end -UnknownScript_0x1a5564: +.RematchSTD: jumpstd rematchm end -UnknownScript_0x1a5568: +.ItemSTD: jumpstd giftm end -UnknownScript_0x1a556c: +.PackFullSTD: jumpstd packfullm end @@ -180,64 +180,64 @@ FisherScript_0x1a5570: faceplayer loadfont checkevent EVENT_GOT_TM50_NIGHTMARE - iftrue UnknownScript_0x1a55af + iftrue .DescribeNightmare checkevent EVENT_GOT_KENYA - iftrue UnknownScript_0x1a5584 + iftrue .TryGiveKenya writetext UnknownText_0x1a56d9 closetext loadmovesprites end -UnknownScript_0x1a5584: +.TryGiveKenya: writetext UnknownText_0x1a5761 keeptextopen checkpokeitem ReceivedSpearowMailText - if_equal $0, UnknownScript_0x1a55b5 - if_equal $2, UnknownScript_0x1a55c1 - if_equal $3, UnknownScript_0x1a55bb - if_equal $4, UnknownScript_0x1a55c7 + if_equal $0, .WrongMail + if_equal $2, .Refused + if_equal $3, .NoMail + if_equal $4, .LastMon writetext UnknownText_0x1a5790 keeptextopen writetext UnknownText_0x1a57ba keeptextopen setevent EVENT_GAVE_KENYA verbosegiveitem TM_NIGHTMARE - iffalse UnknownScript_0x1a55b3 + iffalse .NoRoomForItems setevent EVENT_GOT_TM50_NIGHTMARE -UnknownScript_0x1a55af: +.DescribeNightmare: writetext UnknownText_0x1a5896 closetext -UnknownScript_0x1a55b3: +.NoRoomForItems: loadmovesprites end -UnknownScript_0x1a55b5: +.WrongMail: writetext UnknownText_0x1a5921 closetext loadmovesprites end -UnknownScript_0x1a55bb: +.NoMail: writetext UnknownText_0x1a5939 closetext loadmovesprites end -UnknownScript_0x1a55c1: +.Refused: writetext UnknownText_0x1a5972 closetext loadmovesprites end -UnknownScript_0x1a55c7: +.LastMon: writetext UnknownText_0x1a5991 closetext loadmovesprites end ReceivedSpearowMailText: - db "DARK CAVE leads", $4E - db "to another road@" + db "DARK CAVE leads" + next "to another road@" YoungsterScript_0x1a55ed: jumptextfaceplayer UnknownText_0x1a59d5 @@ -252,7 +252,7 @@ CooltrainerMScript_0x1a55f6: jumptextfaceplayer UnknownText_0x1a55ff FruitTreeScript_0x1a55f9: - fruittree $7 + fruittree FRUITTREE_ROUTE_31 ItemFragment_0x1a55fb: db POTION, 1 diff --git a/maps/Route33.asm b/maps/Route33.asm index aec3c72df..c56188c71 100644 --- a/maps/Route33.asm +++ b/maps/Route33.asm @@ -137,7 +137,7 @@ MapRoute33Signpost0Script: jumptext UnknownText_0x1ac279 FruitTreeScript_0x1ac0ea: - fruittree $6 + fruittree FRUITTREE_ROUTE_33 HikerAnthony2SeenText: text "I came through the" diff --git a/maps/Route35.asm b/maps/Route35.asm index 05ba5f863..c4175e7b6 100644 --- a/maps/Route35.asm +++ b/maps/Route35.asm @@ -261,7 +261,7 @@ ItemFragment_0x19ca7c: db TM_ROLLOUT, 1 FruitTreeScript_0x19ca7e: - fruittree $b + fruittree FRUITTREE_ROUTE_35 CamperIvanSeenText: text "I've been getting" diff --git a/maps/Route36.asm b/maps/Route36.asm index 50ceeba5f..2fe3e7b28 100644 --- a/maps/Route36.asm +++ b/maps/Route36.asm @@ -359,7 +359,7 @@ MapRoute36Signpost0Script: jumptext UnknownText_0x1949ee FruitTreeScript_0x194247: - fruittree $d + fruittree FRUITTREE_ROUTE_36 MovementData_0x194249: db $56 ; movement diff --git a/maps/Route37.asm b/maps/Route37.asm index 868aa5966..47a5d5bda 100644 --- a/maps/Route37.asm +++ b/maps/Route37.asm @@ -99,13 +99,13 @@ MapRoute37Signpost0Script: jumptext UnknownText_0x1a9197 FruitTreeScript_0x1a8e09: - fruittree $11 + fruittree FRUITTREE_ROUTE_37_1 FruitTreeScript_0x1a8e0b: - fruittree $12 + fruittree FRUITTREE_ROUTE_37_2 FruitTreeScript_0x1a8e0d: - fruittree $13 + fruittree FRUITTREE_ROUTE_37_3 MapRoute37SignpostItem1: dwb EVENT_ROUTE_37_HIDDEN_ETHER, ETHER diff --git a/maps/Route38.asm b/maps/Route38.asm index b7dda1d81..bf5bacf48 100644 --- a/maps/Route38.asm +++ b/maps/Route38.asm @@ -311,7 +311,7 @@ MapRoute38Signpost1Script: jumptext UnknownText_0x1a2324 FruitTreeScript_0x1a1f33: - fruittree $3 + fruittree FRUITTREE_ROUTE_38 Bird_keeperTobySeenText: text "Fly high into the" diff --git a/maps/Route39.asm b/maps/Route39.asm index 9da2e6587..515314981 100644 --- a/maps/Route39.asm +++ b/maps/Route39.asm @@ -165,7 +165,7 @@ MapRoute39Signpost0Script: jumptext UnknownText_0x1a6036 FruitTreeScript_0x1a5bf4: - fruittree $f + fruittree FRUITTREE_ROUTE_39 MapRoute39SignpostItem3: dwb EVENT_ROUTE_39_HIDDEN_NUGGET, NUGGET diff --git a/maps/Route42.asm b/maps/Route42.asm index 6f01af5c1..327c7b88d 100644 --- a/maps/Route42.asm +++ b/maps/Route42.asm @@ -194,13 +194,13 @@ ItemFragment_0x1a934b: db SUPER_POTION, 1 FruitTreeScript_0x1a934d: - fruittree $15 + fruittree FRUITTREE_ROUTE_42_1 FruitTreeScript_0x1a934f: - fruittree $16 + fruittree FRUITTREE_ROUTE_42_2 FruitTreeScript_0x1a9351: - fruittree $17 + fruittree FRUITTREE_ROUTE_42_3 MapRoute42SignpostItem4: dwb EVENT_ROUTE_42_HIDDEN_MAX_POTION, MAX_POTION diff --git a/maps/Route43.asm b/maps/Route43.asm index 2eee50867..24e3a90ea 100644 --- a/maps/Route43.asm +++ b/maps/Route43.asm @@ -312,7 +312,7 @@ MapRoute43Signpost2Script: jumptext UnknownText_0x19d6c9 FruitTreeScript_0x19d266: - fruittree $8 + fruittree FRUITTREE_ROUTE_43 ItemFragment_0x19d268: db MAX_ETHER, 1 diff --git a/maps/Route44.asm b/maps/Route44.asm index d6b661d81..0692d8c71 100644 --- a/maps/Route44.asm +++ b/maps/Route44.asm @@ -293,7 +293,7 @@ MapRoute44Signpost1Script: jumptext UnknownText_0x19dfcc FruitTreeScript_0x19da40: - fruittree $10 + fruittree FRUITTREE_ROUTE_44 ItemFragment_0x19da42: db MAX_REVIVE, 1 diff --git a/maps/Route45.asm b/maps/Route45.asm index 6f5131973..bab4302a5 100644 --- a/maps/Route45.asm +++ b/maps/Route45.asm @@ -282,7 +282,7 @@ MapRoute45Signpost0Script: jumptext UnknownText_0x19e8fe FruitTreeScript_0x19e294: - fruittree $c + fruittree FRUITTREE_ROUTE_45 ItemFragment_0x19e296: db NUGGET, 1 diff --git a/maps/Route46.asm b/maps/Route46.asm index 88d046d44..493bd5303 100644 --- a/maps/Route46.asm +++ b/maps/Route46.asm @@ -157,10 +157,10 @@ ItemFragment_0x1a978d: db X_SPEED, 1 FruitTreeScript_0x1a978f: - fruittree $4 + fruittree FRUITTREE_ROUTE_46_1 FruitTreeScript_0x1a9791: - fruittree $a + fruittree FRUITTREE_ROUTE_46_2 HikerBaileySeenText: text "Awright! I'll show" diff --git a/maps/Route8.asm b/maps/Route8.asm index 8dc7e76b0..e9d87f31b 100644 --- a/maps/Route8.asm +++ b/maps/Route8.asm @@ -67,7 +67,7 @@ MapRoute8Signpost0Script: jumptext UnknownText_0x6c2b7 FruitTreeScript_0x6c06c: - fruittree $1b + fruittree FRUITTREE_ROUTE_8 BikerDwayneSeenText: text "We're the KANTO" diff --git a/maps/VioletCity.asm b/maps/VioletCity.asm index a16813e7c..248e3e564 100644 --- a/maps/VioletCity.asm +++ b/maps/VioletCity.asm @@ -87,7 +87,7 @@ ItemFragment_0x1a8423: db RARE_CANDY, 1 FruitTreeScript_0x1a8425: - fruittree $9 + fruittree FRUITTREE_VIOLET_CITY MapVioletCitySignpostItem6: dwb EVENT_VIOLET_CITY_HIDDEN_HYPER_POTION, HYPER_POTION diff --git a/misc/battle_tower_5c.asm b/misc/battle_tower_5c.asm index 0cd84c0d9..f4f0e2a2b 100755 --- a/misc/battle_tower_5c.asm +++ b/misc/battle_tower_5c.asm @@ -323,99 +323,3 @@ endr BT_ChrisName: ; 170426 db "CHRIS@" ; 17042c - -Function17042c: ; 17042c - ld hl, BT_TrainerTextIndex + $be - ld a, 7 -.loop - push af - push hl - ld c, 18 -.loop2 - ld a, [hli] - ld b, a - ld a, [hli] - and a - jr z, .skip - cp $f - jr nc, .exit_inner_loop - push hl - ld hl, Unknown_170470 - dec a - ld e, a - ld d, 0 - add hl, de - ld a, [hl] - pop hl - cp b - jr c, .exit_inner_loop - jr z, .exit_inner_loop - jr .asm_170456 - -.skip - ld a, b - cp $fc - jr nc, .exit_inner_loop - -.asm_170456 - dec c - jr nz, .loop2 - jr .dont_copy - -.exit_inner_loop - pop de - push de - ld hl, Unknown_17047e - ld bc, BATTLETOWER_TRAINERDATALENGTH - call CopyBytes - -.dont_copy - pop hl - ld de, $00e0 - add hl, de - pop af - dec a - jr nz, .loop - ret -; 170470 - -Unknown_170470: - db $12, $24, $45, $45, $42, $42, $45, $42, $27, $27, $45, $27, $42, $24 - -Unknown_17047e: - db $03, $04, $05, $08 - db $03, $05, $0e, $06 - db $03, $02, $00, $00 - db $39, $07, $07, $04 - db $00, $05, $04, $07 - db $01, $05, $00, $00 - db $0f, $05, $14, $07 - db $05, $05, $11, $0c - db $0c, $06, $06, $04 - - -CopyBTTrainer_FromBT_OT_TowBT_OTTemp: ; 1704a2 -; copy the BattleTower-Trainer data that lies at 'BT_OTTrainer' to 'wBT_OTTemp' - ld a, [rSVBK] - push af - ld a, $3 ; BANK(BT_OTTrainer) - ld [rSVBK], a - - ld hl, BT_OTTrainer ; $d100 - ld de, wBT_OTTemp ; $c608 - ld bc, BATTLE_TOWER_STRUCT_LENGTH - call CopyBytes - - pop af - ld [rSVBK], a - - ld a, BANK(sSaveType) - call GetSRAMBank - ld a, $2 - ld [sSaveType], a - ld hl, sNrOfBeatenBattleTowerTrainers - inc [hl] - call CloseSRAM -SkipBattleTowerTrainer: ; 1704c9 - ret -; 1704ca diff --git a/misc/mobile_5c.asm b/misc/mobile_5c.asm index 0f2fb7158..df4827808 100755 --- a/misc/mobile_5c.asm +++ b/misc/mobile_5c.asm @@ -90,6 +90,7 @@ Function1700c4: ; 1700c4 push af ld a, $3 ld [rSVBK], a + call Function17042c ld a, $5 call GetSRAMBank @@ -244,15 +245,113 @@ Function17020c: ; 17020c inc de and a ret z -.asm_170210 + +.loop add hl, bc dec a - jr nz, .asm_170210 + jr nz, .loop ret ; 170215 INCLUDE "misc/battle_tower_5c.asm" + +Function17042c: ; 17042c + ld hl, w3_d2be + ld a, 7 +.loop + push af + push hl + ld c, 18 +.loop2 + ld a, [hli] + ld b, a + ld a, [hli] + and a + jr z, .empty + cp $f + jr nc, .exit_inner_loop + push hl + ld hl, Unknown_170470 + dec a + ld e, a + ld d, 0 + add hl, de + ld a, [hl] + pop hl + cp b + jr c, .exit_inner_loop + jr z, .exit_inner_loop + jr .next_iteration + +.empty + ld a, b + cp $fc + jr nc, .exit_inner_loop + +.next_iteration + dec c + jr nz, .loop2 + jr .dont_copy + +.exit_inner_loop + pop de + push de + ld hl, Unknown_17047e + ld bc, BATTLETOWER_TRAINERDATALENGTH + call CopyBytes + +.dont_copy + pop hl + ld de, $00e0 + add hl, de + pop af + dec a + jr nz, .loop + ret +; 170470 + +Unknown_170470: + db $12, $24, $45, $45, $42, $42, $45, $42, $27, $27, $45, $27, $42, $24 + +Unknown_17047e: + db $03, $04, $05, $08 + db $03, $05, $0e, $06 + db $03, $02, $00, $00 + db $39, $07, $07, $04 + db $00, $05, $04, $07 + db $01, $05, $00, $00 + db $0f, $05, $14, $07 + db $05, $05, $11, $0c + db $0c, $06, $06, $04 + + +CopyBTTrainer_FromBT_OT_TowBT_OTTemp: ; 1704a2 +; copy the BattleTower-Trainer data that lies at 'BT_OTTrainer' to 'wBT_OTTemp' + ld a, [rSVBK] + push af + ld a, $3 ; BANK(BT_OTTrainer) + ld [rSVBK], a + + ld hl, BT_OTTrainer ; $d100 + ld de, wBT_OTTemp ; $c608 + ld bc, BATTLE_TOWER_STRUCT_LENGTH + call CopyBytes + + pop af + ld [rSVBK], a + + ld a, BANK(sSaveType) + call GetSRAMBank + ld a, $2 + ld [sSaveType], a + ld hl, sNrOfBeatenBattleTowerTrainers + inc [hl] + call CloseSRAM +SkipBattleTowerTrainer: ; 1704c9 + ret +; 1704ca + Function1704ca: ; 1704ca ld a, [$be46] cp $7 @@ -10,9 +10,10 @@ sScratch:: SECTION "SRAM Bank 0", SRAM [$a600], BANK [0] mailmsg: MACRO -\1Message:: ds $20 +\1Message:: ds MAIL_MSG_LENGTH +\1MessageEnd:: ds 1 \1Author:: ds NAME_LENGTH - ds 3 +\1AuthorID:: ds 2 \1MailType:: ds 1 endm ; a600 @@ -2881,8 +2881,11 @@ w3_d100:: ; BattleTower OpponentTrainer-Data (length = 0xe0 = $a + $1 + 3*$3b + BT_OTTrainer:: battle_tower_struct BT_OT ; d1e0 ds $20 +; d200 BT_TrainerTextIndex:: - ds $600 + ds $be +w3_d2be:: + ds $542 wBTChoiceOfLvlGroup:: w3_d800:: ds $400 |