summaryrefslogtreecommitdiff
path: root/engine/warp_connection.asm
diff options
context:
space:
mode:
authormid-kid <esteve.varela@gmail.com>2018-03-13 13:07:16 +0100
committermid-kid <esteve.varela@gmail.com>2018-03-13 13:21:40 +0100
commitbaa0dc5a963a79843b37888bcfe1d2dfe833ade9 (patch)
tree968c86105bd67a3121d8f3f20018bfc59191f4c9 /engine/warp_connection.asm
parent12070ca50067d3abe36a730190f88ee43f2cace9 (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-xengine/warp_connection.asm439
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