diff options
author | mid-kid <esteve.varela@gmail.com> | 2018-03-25 16:18:33 +0200 |
---|---|---|
committer | mid-kid <esteve.varela@gmail.com> | 2018-03-25 16:18:33 +0200 |
commit | 0d9241889fc8a2f047b9fd6db25e55de1e721877 (patch) | |
tree | 4ae588ae9d97639b456e6d2ba64a94676ddcf703 /engine/routines | |
parent | 60e21a86638cad5fd25133cda1c545461304d902 (diff) |
Organize the engine/ directory, take 3
Renamed `title` to `movies`.
Moved some functions from `engine/routines/` to their fitting
directories, and cleaned up the base `engine/` directory.
Moved `engine/pokemon/tmhm.asm` back to `engine/items/`.
Made a new subdirectory:
* engine/tilesets: Contains all map-related graphics routines.
Diffstat (limited to 'engine/routines')
-rw-r--r-- | engine/routines/checknickerrors.asm | 74 | ||||
-rw-r--r-- | engine/routines/checksave.asm | 20 | ||||
-rw-r--r-- | engine/routines/checktime.asm | 19 | ||||
-rw-r--r-- | engine/routines/correcterrorsinplayerparty.asm | 229 | ||||
-rw-r--r-- | engine/routines/loadpushoam.asm | 21 | ||||
-rw-r--r-- | engine/routines/phonering_copytilemapatonce.asm | 80 | ||||
-rw-r--r-- | engine/routines/placewaitingtext.asm | 24 | ||||
-rw-r--r-- | engine/routines/playslowcry.asm | 31 | ||||
-rw-r--r-- | engine/routines/predef.asm | 29 | ||||
-rw-r--r-- | engine/routines/savemenu_copytilemapatonce.asm | 77 | ||||
-rw-r--r-- | engine/routines/townmap_convertlinebreakcharacters.asm | 21 |
11 files changed, 29 insertions, 596 deletions
diff --git a/engine/routines/checknickerrors.asm b/engine/routines/checknickerrors.asm deleted file mode 100644 index 87ebd6bb3..000000000 --- a/engine/routines/checknickerrors.asm +++ /dev/null @@ -1,74 +0,0 @@ -CheckNickErrors:: ; 669f -; error-check monster nick before use -; must be a peace offering to gamesharkers - -; input: de = nick location - - push bc - push de - ld b, MON_NAME_LENGTH - -.checkchar -; end of nick? - ld a, [de] - cp "@" ; terminator - jr z, .end - -; check if this char is a text command - ld hl, .textcommands - dec hl -.loop -; next entry - inc hl -; reached end of commands table? - ld a, [hl] - cp -1 - jr z, .done - -; is the current char between this value (inclusive)... - ld a, [de] - cp [hl] - inc hl - jr c, .loop -; ...and this one? - cp [hl] - jr nc, .loop - -; replace it with a "?" - ld a, "?" - ld [de], a - jr .loop - -.done -; next char - inc de -; reached end of nick without finding a terminator? - dec b - jr nz, .checkchar - -; change nick to "?@" - pop de - push de - ld a, "?" - ld [de], a - inc de - ld a, "@" - ld [de], a -.end -; if the nick has any errors at this point it's out of our hands - pop de - pop bc - ret - -.textcommands ; 66cf -; table defining which characters are actually text commands -; format: - ; ≥ < - db TX_START, TX_BOX + 1 - db "<PLAY_G>", "<JP_18>" + 1 - db "<NI>", "<NO>" + 1 - db "<ROUTE>", "<GREEN>" + 1 - db "<ENEMY>", "<ENEMY>" + 1 - db "<MOM>", "<TM>" + 1 - db "<ROCKET>", "┘" + 1 - db -1 ; end diff --git a/engine/routines/checksave.asm b/engine/routines/checksave.asm deleted file mode 100644 index 2280f0e53..000000000 --- a/engine/routines/checksave.asm +++ /dev/null @@ -1,20 +0,0 @@ -CheckSave:: ; 4cffe - ld a, BANK(sCheckValue1) ; BANK(sCheckValue2) - call GetSRAMBank - ld a, [sCheckValue1] - ld b, a - ld a, [sCheckValue2] - ld c, a - call CloseSRAM - ld a, b - cp SAVE_CHECK_VALUE_1 - jr nz, .ok - ld a, c - cp SAVE_CHECK_VALUE_2 - jr nz, .ok - ld c, $1 - ret - -.ok - ld c, $0 - ret diff --git a/engine/routines/checktime.asm b/engine/routines/checktime.asm deleted file mode 100644 index 4c7d033ff..000000000 --- a/engine/routines/checktime.asm +++ /dev/null @@ -1,19 +0,0 @@ -CheckTime:: ; c000 - ld a, [wTimeOfDay] - ld hl, .TimeOfDayTable - ld de, 2 - call IsInArray - inc hl - ld c, [hl] - ret c - - xor a - ld c, a - ret - -.TimeOfDayTable: ; c012 - db MORN_F, MORN - db DAY_F, DAY - db NITE_F, NITE - db NITE_F, NITE - db -1 diff --git a/engine/routines/correcterrorsinplayerparty.asm b/engine/routines/correcterrorsinplayerparty.asm deleted file mode 100644 index e815aa4c8..000000000 --- a/engine/routines/correcterrorsinplayerparty.asm +++ /dev/null @@ -1,229 +0,0 @@ -Unreferenced_CorrectErrorsInPlayerParty: - ld hl, wPartyCount - ld a, [hl] - and a - ret z - - cp PARTY_LENGTH + 1 - jr c, .party_length_okay - ld a, PARTY_LENGTH - ld [hl], a -.party_length_okay - inc hl - - ld b, a - ld c, 0 -.loop1 - ld a, [hl] - and a - jr z, .invalid_species - cp NUM_POKEMON + 1 - jr z, .invalid_species - cp EGG + 1 - jr c, .next_species - -.invalid_species - ld [hl], SMEARGLE - push hl - push bc - ld a, c - ld hl, wPartyMon1Species - call GetPartyLocation - ld [hl], SMEARGLE - pop bc - pop hl - -.next_species - inc hl - inc c - dec b - jr nz, .loop1 - ld [hl], $ff - - ld hl, wPartyMon1 - ld a, [wPartyCount] - ld d, a - ld e, 0 -.loop2 - push de - push hl - ld b, h - ld c, l - ld a, [hl] - and a - jr z, .invalid_species_2 - cp NUM_POKEMON + 1 - jr c, .check_level - -.invalid_species_2 - ld [hl], SMEARGLE - push de - ld d, 0 - ld hl, wPartySpecies - add hl, de - pop de - ld a, SMEARGLE - ld [hl], a - -.check_level - ld [wCurSpecies], a - call GetBaseData - ld hl, MON_LEVEL - add hl, bc - ld a, [hl] - cp MIN_LEVEL - ld a, MIN_LEVEL - jr c, .invalid_level - ld a, [hl] - cp MAX_LEVEL - jr c, .load_level - ld a, MAX_LEVEL -.invalid_level - ld [hl], a -.load_level - ld [wCurPartyLevel], a - - ld hl, MON_MAXHP - add hl, bc - ld d, h - ld e, l - ld hl, MON_STAT_EXP - 1 - add hl, bc - ld b, TRUE - predef CalcMonStats - pop hl - ld bc, PARTYMON_STRUCT_LENGTH - add hl, bc - pop de - inc e - dec d - jr nz, .loop2 - - ld de, wPartyMonNicknames - ld a, [wPartyCount] - ld b, a - ld c, 0 -.loop3 - push bc - call .GetLengthOfStringWith6CharCap - push de - farcall CheckStringForErrors - pop hl - pop bc - jr nc, .valid_nickname - - push bc - push hl - ld hl, wPartySpecies - push bc - ld b, 0 - add hl, bc - pop bc - ld a, [hl] - cp EGG - ld hl, .TAMAGO - jr z, .got_nickname - ld [wd265], a - call GetPokemonName - ld hl, wStringBuffer1 -.got_nickname - pop de - ld bc, MON_NAME_LENGTH - call CopyBytes - pop bc - -.valid_nickname - inc c - dec b - jr nz, .loop3 - - ld de, wPartyMonOT - ld a, [wPartyCount] - ld b, a - ld c, 0 -.loop4 - push bc - call .GetLengthOfStringWith6CharCap - push de - farcall CheckStringForErrors - pop hl - jr nc, .valid_ot_name - ld d, h - ld e, l - ld hl, wPlayerName - ld bc, NAME_LENGTH - call CopyBytes -.valid_ot_name - pop bc - inc c - dec b - jr nz, .loop4 - - ld hl, wPartyMon1Moves - ld a, [wPartyCount] - ld b, a -.loop5 - push hl - ld c, NUM_MOVES - ld a, [hl] - and a - jr z, .invalid_move - cp NUM_ATTACKS + 1 - jr c, .moves_loop -.invalid_move - ld [hl], POUND - -.moves_loop - ld a, [hl] - and a - jr z, .fill_invalid_moves - cp NUM_ATTACKS + 1 - jr c, .next_move - -.fill_invalid_moves - xor a - ld [hli], a - dec c - jr nz, .fill_invalid_moves - jr .next_pokemon - -.next_move - inc hl - dec c - jr nz, .moves_loop - -.next_pokemon - pop hl - push bc - ld bc, PARTYMON_STRUCT_LENGTH - add hl, bc - pop bc - dec b - jr nz, .loop5 - ret -; 13b6b - -.TAMAGO: ; 13b6b - db "タマゴ@@@" -; 13b71 - -.GetLengthOfStringWith6CharCap: ; 13b71 - push de - ld c, 1 - ld b, NAME_LENGTH_JAPANESE -.search_loop - ld a, [de] - cp "@" - jr z, .done - inc de - inc c - dec b - jr nz, .search_loop - dec c - dec de - ld a, "@" - ld [de], a -.done - pop de - ret -; 13b87 diff --git a/engine/routines/loadpushoam.asm b/engine/routines/loadpushoam.asm deleted file mode 100644 index 95f67ff73..000000000 --- a/engine/routines/loadpushoam.asm +++ /dev/null @@ -1,21 +0,0 @@ -WriteOAMDMACodeToHRAM:: ; 4031 - ld c, hTransferVirtualOAM - $ff00 - ld b, .PushOAMEnd - .PushOAM - ld hl, .PushOAM -.loop - ld a, [hli] - ld [$ff00+c], a - inc c - dec b - jr nz, .loop - ret - -.PushOAM: ; 403f - ld a, HIGH(wVirtualOAM) - ld [rDMA], a - ld a, NUM_SPRITE_OAM_STRUCTS -.pushoam_loop - dec a - jr nz, .pushoam_loop - ret -.PushOAMEnd diff --git a/engine/routines/phonering_copytilemapatonce.asm b/engine/routines/phonering_copytilemapatonce.asm deleted file mode 100644 index b0d4ffa1e..000000000 --- a/engine/routines/phonering_copytilemapatonce.asm +++ /dev/null @@ -1,80 +0,0 @@ -PhoneRing_CopyTilemapAtOnce: ; 4d188 - ld a, [hCGB] - and a - jp z, WaitBGMap - ld a, [wSpriteUpdatesEnabled] - cp $0 - jp z, WaitBGMap - -; What follows is a modified version of CopyTilemapAtOnce. - ld a, [hBGMapMode] - push af - xor a - ld [hBGMapMode], a - ld a, [hMapAnims] - push af - xor a - ld [hMapAnims], a -.wait - ld a, [rLY] - cp LY_VBLANK - 1 - jr c, .wait - - di - ld a, BANK(vBGMap2) - ld [rVBK], a - hlcoord 0, 0, wAttrMap - call .CopyTilemapAtOnce - ld a, BANK(vBGMap0) - ld [rVBK], a - hlcoord 0, 0 - call .CopyTilemapAtOnce -.wait2 - ld a, [rLY] - cp LY_VBLANK - 1 - jr c, .wait2 - ei - - pop af - ld [hMapAnims], a - pop af - ld [hBGMapMode], a - ret - -.CopyTilemapAtOnce: ; 4d1cb - ld [hSPBuffer], sp - ld sp, hl - ld a, [hBGMapAddress + 1] - ld h, a - ld l, 0 - ld a, SCREEN_HEIGHT - ld [hTilesPerCycle], a - ld b, 1 << 1 ; not in v/hblank - ld c, LOW(rSTAT) - -.loop -rept SCREEN_WIDTH / 2 - pop de -.loop\@ - ld a, [$ff00+c] - and b - jr nz, .loop\@ - ld [hl], e - inc l - ld [hl], d - inc l -endr - - ld de, BG_MAP_WIDTH - SCREEN_WIDTH - add hl, de - ld a, [hTilesPerCycle] - dec a - ld [hTilesPerCycle], a - jr nz, .loop - - ld a, [hSPBuffer] - ld l, a - ld a, [hSPBuffer + 1] - ld h, a - ld sp, hl - ret diff --git a/engine/routines/placewaitingtext.asm b/engine/routines/placewaitingtext.asm deleted file mode 100644 index 9b2260722..000000000 --- a/engine/routines/placewaitingtext.asm +++ /dev/null @@ -1,24 +0,0 @@ -PlaceWaitingText:: ; 4000 - hlcoord 3, 10 - ld b, 1 - ld c, 11 - - ld a, [wBattleMode] - and a - jr z, .notinbattle - - call TextBox - jr .proceed - -.notinbattle - predef LinkTextboxAtHL - -.proceed - hlcoord 4, 11 - ld de, .Waiting - call PlaceString - ld c, 50 - jp DelayFrames - -.Waiting: ; 4025 - db "Waiting...!@" diff --git a/engine/routines/playslowcry.asm b/engine/routines/playslowcry.asm deleted file mode 100644 index 1f27a7ca4..000000000 --- a/engine/routines/playslowcry.asm +++ /dev/null @@ -1,31 +0,0 @@ -PlaySlowCry: ; fb841 - ld a, [wScriptVar] - call LoadCry - jr c, .done - - ld hl, wCryPitch - ld a, [hli] - ld h, [hl] - ld l, a - ld bc, -$140 - add hl, bc - ld a, l - ld [wCryPitch], a - ld a, h - ld [wCryPitch + 1], a - ld hl, wCryLength - ld a, [hli] - ld h, [hl] - ld l, a - ld bc, $60 - add hl, bc - ld a, l - ld [wCryLength], a - ld a, h - ld [wCryLength + 1], a - farcall _PlayCry - call WaitSFX - -.done - ret -; fb877 diff --git a/engine/routines/predef.asm b/engine/routines/predef.asm new file mode 100644 index 000000000..13c593c90 --- /dev/null +++ b/engine/routines/predef.asm @@ -0,0 +1,29 @@ +GetPredefPointer:: ; 854b +; Return the bank and address of wPredefID in a and wPredefAddress. + +; Save hl for later (back in Predef) + ld a, h + ld [wPredefTemp], a + ld a, l + ld [wPredefTemp + 1], a + + push de + ld a, [wPredefID] + ld e, a + ld d, 0 + ld hl, PredefPointers + add hl, de + add hl, de + add hl, de + pop de + + ld a, [hli] + ld [wPredefAddress + 1], a + ld a, [hli] + ld [wPredefAddress], a + ld a, [hl] + + ret +; 856b + +INCLUDE "data/predef_pointers.asm" diff --git a/engine/routines/savemenu_copytilemapatonce.asm b/engine/routines/savemenu_copytilemapatonce.asm deleted file mode 100644 index 9b50494a4..000000000 --- a/engine/routines/savemenu_copytilemapatonce.asm +++ /dev/null @@ -1,77 +0,0 @@ -SaveMenu_CopyTilemapAtOnce: ; 4cf45 (13:4f45) - ld a, [hCGB] - and a - jp z, WaitBGMap - -; The following is a modified version of CopyTilemapAtOnce. - ld a, [hBGMapMode] - push af - xor a - ld [hBGMapMode], a - ld a, [hMapAnims] - push af - xor a - ld [hMapAnims], a -.WaitLY: - ld a, [rLY] - cp $60 - jr c, .WaitLY - - di - ld a, BANK(vBGMap2) - ld [rVBK], a - hlcoord 0, 0, wAttrMap - call .CopyTilemapAtOnce - ld a, BANK(vBGMap0) - ld [rVBK], a - hlcoord 0, 0 - call .CopyTilemapAtOnce -.WaitLY2: - ld a, [rLY] - cp $60 - jr c, .WaitLY2 - ei - - pop af - ld [hMapAnims], a - pop af - ld [hBGMapMode], a - ret - -.CopyTilemapAtOnce: ; 4cf80 (13:4f80) - ld [hSPBuffer], sp ; $ffd9 - ld sp, hl - ld a, [hBGMapAddress + 1] - ld h, a - ld l, 0 - ld a, SCREEN_HEIGHT - ld [hTilesPerCycle], a - ld b, 1 << 1 - ld c, LOW(rSTAT) - -.loop -rept SCREEN_WIDTH / 2 - pop de -.loop\@ - ld a, [$ff00+c] - and b - jr nz, .loop\@ - ld [hl], e - inc l - ld [hl], d - inc l -endr - - ld de, BG_MAP_WIDTH - SCREEN_WIDTH - add hl, de - ld a, [hTilesPerCycle] - dec a - ld [hTilesPerCycle], a - jr nz, .loop - - ld a, [hSPBuffer] - ld l, a - ld a, [hSPBuffer + 1] - ld h, a - ld sp, hl - ret diff --git a/engine/routines/townmap_convertlinebreakcharacters.asm b/engine/routines/townmap_convertlinebreakcharacters.asm deleted file mode 100644 index 6ccd79aae..000000000 --- a/engine/routines/townmap_convertlinebreakcharacters.asm +++ /dev/null @@ -1,21 +0,0 @@ -TownMap_ConvertLineBreakCharacters: ; 1de2c5 - ld hl, wStringBuffer1 -.loop - ld a, [hl] - cp "@" - jr z, .end - cp "%" - jr z, .line_break - cp "¯" - jr z, .line_break - inc hl - jr .loop - -.line_break - ld [hl], "<LNBRK>" - -.end - ld de, wStringBuffer1 - hlcoord 9, 0 - call PlaceString - ret |