diff options
author | mid-kid <esteve.varela@gmail.com> | 2018-03-13 13:07:16 +0100 |
---|---|---|
committer | mid-kid <esteve.varela@gmail.com> | 2018-03-13 13:21:40 +0100 |
commit | baa0dc5a963a79843b37888bcfe1d2dfe833ade9 (patch) | |
tree | 968c86105bd67a3121d8f3f20018bfc59191f4c9 /engine/warp_connection.asm | |
parent | 12070ca50067d3abe36a730190f88ee43f2cace9 (diff) |
Organize the engine/ directory
This is an informed attempt at reorganizing the engine/ directory by
creating categorized subdirectories, in order to make it easier to
navigate and find things.
The directories created are as follows:
* engine/game: Contains all "minigames", things like the unown puzzle
and slot machine.
* engine/gfx: Contains all handling of graphics. From loading palettes
to playing animations.
* engine/link: Contains all multiplayer functionality.
* engine/menu: Contains all generic/misc. menus and menu code.
Other, more specialized menus are in their own subdirectories (pokedex,
pokegear, party menu, etc).
* engine/overworld: Contains all handling of the overworld. From loading
and connecting maps to wild encounters and the scripting engine.
* engine/pokegear: In the same vein as engine/pokedex, except it could
use some more splitting up.
* engine/pokemon: Contains everything related to manipulating pokemon
data. From the pokemon storage system to evolution and mail.
* engine/printer: Contains everything related to printing things as well
as the printer communication.
* engine/title: Contains intro sequences, title screens and credits.
Diffstat (limited to 'engine/warp_connection.asm')
-rwxr-xr-x | engine/warp_connection.asm | 439 |
1 files changed, 0 insertions, 439 deletions
diff --git a/engine/warp_connection.asm b/engine/warp_connection.asm deleted file mode 100755 index 069b72234..000000000 --- a/engine/warp_connection.asm +++ /dev/null @@ -1,439 +0,0 @@ - -HandleNewMap: ; 1045b0 - call Clearwc7e8 - call ResetMapBufferEventFlags - call ResetFlashIfOutOfCave - call GetCurrentMapSceneID - call ResetBikeFlags - ld a, MAPCALLBACK_NEWMAP - call RunMapCallback -InitCommandQueue: ; 1045c4 - farcall ClearCmdQueue - ld a, MAPCALLBACK_CMDQUEUE - call RunMapCallback - call GetMapTimeOfDay - ld [wMapTimeOfDay], a - ret - - -EnterMapConnection: ; 1045d6 -; Return carry if a connection has been entered. - ld a, [wPlayerStepDirection] - and a - jp z, .south - cp UP - jp z, .north - cp LEFT - jp z, .west - cp RIGHT - jp z, .east - ret - -.west - ld a, [wWestConnectedMapGroup] - ld [wMapGroup], a - ld a, [wWestConnectedMapNumber] - ld [wMapNumber], a - ld a, [wWestConnectionStripXOffset] - ld [wXCoord], a - ld a, [wWestConnectionStripYOffset] - ld hl, wYCoord - add [hl] - ld [hl], a - ld c, a - ld hl, wWestConnectionWindow - ld a, [hli] - ld h, [hl] - ld l, a - srl c - jr z, .skip_to_load - ld a, [wWestConnectedMapWidth] - add 6 - ld e, a - ld d, 0 - -.loop - add hl, de - dec c - jr nz, .loop - -.skip_to_load - ld a, l - ld [wOverworldMapAnchor], a - ld a, h - ld [wOverworldMapAnchor + 1], a - jp .done - -.east - ld a, [wEastConnectedMapGroup] - ld [wMapGroup], a - ld a, [wEastConnectedMapNumber] - ld [wMapNumber], a - ld a, [wEastConnectionStripXOffset] - ld [wXCoord], a - ld a, [wEastConnectionStripYOffset] - ld hl, wYCoord - add [hl] - ld [hl], a - ld c, a - ld hl, wEastConnectionWindow - ld a, [hli] - ld h, [hl] - ld l, a - srl c - jr z, .skip_to_load2 - ld a, [wEastConnectedMapWidth] - add 6 - ld e, a - ld d, 0 - -.loop2 - add hl, de - dec c - jr nz, .loop2 - -.skip_to_load2 - ld a, l - ld [wOverworldMapAnchor], a - ld a, h - ld [wOverworldMapAnchor + 1], a - jp .done - -.north - ld a, [wNorthConnectedMapGroup] - ld [wMapGroup], a - ld a, [wNorthConnectedMapNumber] - ld [wMapNumber], a - ld a, [wNorthConnectionStripYOffset] - ld [wYCoord], a - ld a, [wNorthConnectionStripXOffset] - ld hl, wXCoord - add [hl] - ld [hl], a - ld c, a - ld hl, wNorthConnectionWindow - ld a, [hli] - ld h, [hl] - ld l, a - ld b, 0 - srl c - add hl, bc - ld a, l - ld [wOverworldMapAnchor], a - ld a, h - ld [wOverworldMapAnchor + 1], a - jp .done - -.south - ld a, [wSouthConnectedMapGroup] - ld [wMapGroup], a - ld a, [wSouthConnectedMapNumber] - ld [wMapNumber], a - ld a, [wSouthConnectionStripYOffset] - ld [wYCoord], a - ld a, [wSouthConnectionStripXOffset] - ld hl, wXCoord - add [hl] - ld [hl], a - ld c, a - ld hl, wSouthConnectionWindow - ld a, [hli] - ld h, [hl] - ld l, a - ld b, 0 - srl c - add hl, bc - ld a, l - ld [wOverworldMapAnchor], a - ld a, h - ld [wOverworldMapAnchor + 1], a -.done - scf - ret -; 1046c6 - -LoadWarpData: ; 1046c6 - call .SaveDigWarp - call .SetSpawn - ld a, [wNextWarp] - ld [wWarpNumber], a - ld a, [wNextMapGroup] - ld [wMapGroup], a - ld a, [wNextMapNumber] - ld [wMapNumber], a - ret - -.SaveDigWarp: ; 1046df (41:46df) - call GetMapEnvironment - call CheckOutdoorMap - ret nz - ld a, [wNextMapGroup] - ld b, a - ld a, [wNextMapNumber] - ld c, a - call GetAnyMapEnvironment - call CheckIndoorMap - ret nz - -; MOUNT_MOON_SQUARE and TIN_TOWER_ROOF are outdoor maps within indoor maps. -; Dig and Escape Rope should not take you to them. - ld a, [wPrevMapGroup] - cp GROUP_MOUNT_MOON_SQUARE ; GROUP_TIN_TOWER_ROOF - jr nz, .not_mt_moon_or_tin_tower - ld a, [wPrevMapNumber] - cp MAP_MOUNT_MOON_SQUARE - ret z - cp MAP_TIN_TOWER_ROOF - ret z -.not_mt_moon_or_tin_tower - - ld a, [wPrevWarp] - ld [wDigWarpNumber], a - ld a, [wPrevMapGroup] - ld [wDigMapGroup], a - ld a, [wPrevMapNumber] - ld [wDigMapNumber], a - ret - -.SetSpawn: ; 104718 (41:4718) - call GetMapEnvironment - call CheckOutdoorMap - ret nz - ld a, [wNextMapGroup] - ld b, a - ld a, [wNextMapNumber] - ld c, a - call GetAnyMapEnvironment - call CheckIndoorMap - ret nz - ld a, [wNextMapGroup] - ld b, a - ld a, [wNextMapNumber] - ld c, a - -; Respawn in Pokémon Centers. - call GetAnyMapTileset - ld a, c - cp TILESET_POKECENTER - jr z, .pokecenter_pokecom - cp TILESET_POKECOM_CENTER - jr z, .pokecenter_pokecom - ret -.pokecenter_pokecom - - ld a, [wPrevMapGroup] - ld [wLastSpawnMapGroup], a - ld a, [wPrevMapNumber] - ld [wLastSpawnMapNumber], a - ret - -LoadMapTimeOfDay: ; 104750 - ld hl, wVramState - res 6, [hl] - ld a, $1 - ld [wSpriteUpdatesEnabled], a - farcall ReplaceTimeOfDayPals - farcall UpdateTimeOfDayPal - call OverworldTextModeSwitch - call .ClearBGMap - call .PushAttrMap - ret - -.ClearBGMap: ; 104770 (41:4770) - ld a, HIGH(vBGMap0) - ld [wBGMapAnchor + 1], a - xor a ; LOW(vBGMap0) - ld [wBGMapAnchor], a - ld [hSCY], a - ld [hSCX], a - farcall ApplyBGMapAnchorToObjects - - ld a, [rVBK] - push af - ld a, $1 - ld [rVBK], a - - xor a - ld bc, vBGMap1 - vBGMap0 - hlbgcoord 0, 0 - call ByteFill - - pop af - ld [rVBK], a - - ld a, "■" - ld bc, vBGMap1 - vBGMap0 - hlbgcoord 0, 0 - call ByteFill - ret - -.PushAttrMap: ; 1047a3 (41:47a3) - decoord 0, 0 - call .copy - ld a, [hCGB] - and a - ret z - - decoord 0, 0, wAttrMap - ld a, $1 - ld [rVBK], a -.copy - hlbgcoord 0, 0 - ld c, SCREEN_WIDTH - ld b, SCREEN_HEIGHT -.row - push bc -.column - ld a, [de] - inc de - ld [hli], a - dec c - jr nz, .column - ld bc, BG_MAP_WIDTH - SCREEN_WIDTH - add hl, bc - pop bc - dec b - jr nz, .row - ld a, $0 - ld [rVBK], a - ret - -LoadGraphics: ; 1047cf - call LoadTileset - call LoadTilesetGFX - xor a - ld [hMapAnims], a - xor a - ld [hTileAnimFrame], a - farcall RefreshSprites - call LoadFontsExtra - farcall LoadOverworldFont - ret - -LoadMapPalettes: ; 1047eb - ld b, SCGB_MAPPALS - jp GetSGBLayout -; 1047f0 - -RefreshMapSprites: ; 1047f0 - call ClearSprites - farcall ReturnFromMapSetupScript - call GetMovementPermissions - farcall RefreshPlayerSprite - farcall CheckReplaceKrisSprite - ld hl, wPlayerSpriteSetupFlags - bit PLAYERSPRITESETUP_SKIP_RELOAD_GFX_F, [hl] - jr nz, .skip - ld hl, wVramState - set 0, [hl] - call SafeUpdateSprites -.skip - ld a, [wPlayerSpriteSetupFlags] - and %00011100 - ld [wPlayerSpriteSetupFlags], a - ret - -CheckMovingOffEdgeOfMap:: ; 104820 (41:4820) - ld a, [wPlayerStepDirection] - cp STANDING - ret z - and a ; DOWN - jr z, .down - cp UP - jr z, .up - cp LEFT - jr z, .left - cp RIGHT - jr z, .right - and a - ret - -.down - ld a, [wPlayerStandingMapY] - sub 4 - ld b, a - ld a, [wMapHeight] - add a - cp b - jr z, .ok - and a - ret - -.up - ld a, [wPlayerStandingMapY] - sub 4 - cp -1 - jr z, .ok - and a - ret - -.left - ld a, [wPlayerStandingMapX] - sub 4 - cp -1 - jr z, .ok - and a - ret - -.right - ld a, [wPlayerStandingMapX] - sub 4 - ld b, a - ld a, [wMapWidth] - add a - cp b - jr z, .ok - and a - ret - -.ok - scf - ret - - -GetCoordOfUpperLeftCorner:: ; 10486d - ld hl, wOverworldMap - ld a, [wXCoord] - bit 0, a - jr nz, .increment_then_halve1 - srl a - add $1 - jr .resume - -.increment_then_halve1 - add $1 - srl a - -.resume - ld c, a - ld b, $0 - add hl, bc - ld a, [wMapWidth] - add $6 - ld c, a - ld b, $0 - ld a, [wYCoord] - bit 0, a - jr nz, .increment_then_halve2 - srl a - add $1 - jr .resume2 - -.increment_then_halve2 - add $1 - srl a - -.resume2 - call AddNTimes - ld a, l - ld [wOverworldMapAnchor], a - ld a, h - ld [wOverworldMapAnchor + 1], a - ld a, [wYCoord] - and $1 - ld [wMetatileStandingY], a - ld a, [wXCoord] - and $1 - ld [wMetatileStandingX], a - ret -; 1048ba |