diff options
| author | Henny022p <Henny022p@users.noreply.github.com> | 2026-02-08 17:33:27 +0000 |
|---|---|---|
| committer | Henny022p <Henny022p@users.noreply.github.com> | 2026-02-08 17:33:27 +0000 |
| commit | 36440e186924d7c8b98c077c2d8ac7dc738b9e83 (patch) | |
| tree | 87f3433d6470a878fd8c06fced909f3e7737abe0 /TileMap.html | |
deploy: 5ab63f00e522ff69c5bc987e379f0163943f2833gh-pages
Diffstat (limited to 'TileMap.html')
| -rw-r--r-- | TileMap.html | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/TileMap.html b/TileMap.html new file mode 100644 index 00000000..bae0ea9d --- /dev/null +++ b/TileMap.html @@ -0,0 +1,106 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8" /> + <title>Tile Map | The Minish Cap Docs</title> + <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:400,400i,600,600i%7CSource+Code+Pro:400,400i,600" /> + <link rel="stylesheet" href="m-dark+documentation.compiled.css" /> + <link rel="stylesheet" href="style.css" /> + <link rel="icon" href="https://zelda64.dev/favicon.ico" type="image/vnd.microsoft.icon" /> + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <meta name="theme-color" content="#22272e" /> +</head> +<body> +<header><nav id="navigation"> + <div class="m-container"> + <div class="m-row"> + <span id="m-navbar-brand" class="m-col-t-8 m-col-m-none m-left-m"> + <a href="https://github.com/zeldaret/tmc">The Minish Cap</a> <span class="m-breadcrumb">|</span> <a href="index.html" class="m-thin">Docs</a> + </span> + <div class="m-col-t-4 m-hide-m m-text-right m-nopadr"> + <a href="#search" class="m-doc-search-icon" title="Search" onclick="return showSearch()"><svg style="height: 0.9rem;" viewBox="0 0 16 16"> + <path id="m-doc-search-icon-path" d="m6 0c-3.31 0-6 2.69-6 6 0 3.31 2.69 6 6 6 1.49 0 2.85-0.541 3.89-1.44-0.0164 0.338 0.147 0.759 0.5 1.15l3.22 3.79c0.552 0.614 1.45 0.665 2 0.115 0.55-0.55 0.499-1.45-0.115-2l-3.79-3.22c-0.392-0.353-0.812-0.515-1.15-0.5 0.895-1.05 1.44-2.41 1.44-3.89 0-3.31-2.69-6-6-6zm0 1.56a4.44 4.44 0 0 1 4.44 4.44 4.44 4.44 0 0 1-4.44 4.44 4.44 4.44 0 0 1-4.44-4.44 4.44 4.44 0 0 1 4.44-4.44z"/> + </svg></a> + <a id="m-navbar-show" href="#navigation" title="Show navigation"></a> + <a id="m-navbar-hide" href="#" title="Hide navigation"></a> + </div> + <div id="m-navbar-collapse" class="m-col-t-12 m-show-m m-col-m-none m-right-m"> + <div class="m-row"> + <ol class="m-col-t-6 m-col-m-none"> + <li><a href="modules.html">Modules</a></li> + <li><a href="pages.html">Pages</a></li> + </ol> + <ol class="m-col-t-6 m-col-m-none" start="3"> + <li><a href="annotated.html">Classes</a></li> + <li><a href="files.html">Files</a></li> + <li class="m-show-m"><a href="#search" class="m-doc-search-icon" title="Search" onclick="return showSearch()"><svg style="height: 0.9rem;" viewBox="0 0 16 16"> + <use href="#m-doc-search-icon-path" /> + </svg></a></li> + </ol> + </div> + </div> + </div> + </div> +</nav></header> +<main><article> + <div class="m-container m-container-inflatable"> + <div class="m-row"> + <div class="m-col-l-10 m-push-l-1"> + <h1> + Tile Map + </h1> + <p>The map consists of tiles to create the world.</p> +<p>GBA graphics are made out of tiles with a size of 8px by 8px. We call those tiles <em>subTiles</em>. Four of those subTiles are combined together to form a bigger 16px by 16px tile (usually called metaTile). We call these <em>tiles</em>.</p><p>Each map can be up to 64 * 64 tiles big. The map consists of two layers of tiles gMapTop and gMapBottom. To access the map array the tilePos index can be used which goes from 0 to 64 * 64 = 4096. Each value in the <a href="structMapLayer.html#a7e583d6664c9efdfb23af449706edc1e" class="m-doc">MapLayer.mapData</a> is a tileIndex which defined which tile of the tileSet should be used. The tileSet contains tiles from 0 to 2048. Special tileIndex from 0x4000 to 0x4096 can be used to denote special tiles.</p><p>A tile is created from four subTiles. The subTiles for each tile in the tileSet are stored in <a href="structMapLayer.html#a3420add9cf651d5f49565acb30467503" class="m-doc">MapLayer.subTiles</a>. This is loaded for the current area from gAreaTileSets_*. The subTiles can also be flipped or the palette changed. This is stored in bits 0xa to 0xf, see <a href="https://www.coranac.com/tonc/text/regbg.htm#sec-map">https:/<wbr />/<wbr />www.coranac.com/<wbr />tonc/<wbr />text/<wbr />regbg.htm#sec-map</a>.</p><p>Each tile in the tileSet also has a tileType defined. This is stored in <a href="structMapLayer.html#a6135ccbf42c2b5a5783ea7dd8fbc6883" class="m-doc">MapLayer.tileTypes</a> and loaded from gAreaTileSetTypes_*. The inverse dictionary from tileType to tileIndex is stored in <a href="structMapLayer.html#a69ad4f606394acfb3adaead1d9426613" class="m-doc">MapLayer.tileIndices</a>.</p><p>The map also stores the collision for each tile in the tileMap layer in <a href="structMapLayer.html#a7e922468597c823c322b6b5e654a0aaa" class="m-doc">MapLayer.collisionData</a>. By default this is filled from gMapTileTypeToCollisionData based on the tileType of the tiles. But it can also be loaded from gRoomCollisionMap_*. In <a href="structMapLayer.html#a087f30e4bed7bf124aa76e2f737622cb" class="m-doc">MapLayer.actTiles</a> some additional type for each tile is stored which is filled from gMapTileTypeToActTile based on the tileType of the tiles.</p> + </div> + </div> + </div> +</article></main> +<div class="m-doc-search" id="search"> + <a href="#!" onclick="return hideSearch()"></a> + <div class="m-container"> + <div class="m-row"> + <div class="m-col-m-8 m-push-m-2"> + <div class="m-doc-search-header m-text m-small"> + <div><span class="m-label m-default">Tab</span> / <span class="m-label m-default">T</span> to search, <span class="m-label m-default">Esc</span> to close</div> + <div id="search-symbolcount">…</div> + </div> + <div class="m-doc-search-content"> + <form> + <input type="search" name="q" id="search-input" placeholder="Loading …" disabled="disabled" autofocus="autofocus" autocomplete="off" spellcheck="false" /> + </form> + <noscript class="m-text m-danger m-text-center">Unlike everything else in the docs, the search functionality <em>requires</em> JavaScript.</noscript> + <div id="search-help" class="m-text m-dim m-text-center"> + <p class="m-noindent">Search for symbols, directories, files, pages or + modules. You can omit any prefix from the symbol or file path; adding a + <code>:</code> or <code>/</code> suffix lists all members of given symbol or + directory.</p> + <p class="m-noindent">Use <span class="m-label m-dim">↓</span> + / <span class="m-label m-dim">↑</span> to navigate through the list, + <span class="m-label m-dim">Enter</span> to go. + <span class="m-label m-dim">Tab</span> autocompletes common prefix, you can + copy a link to the result using <span class="m-label m-dim">⌘</span> + <span class="m-label m-dim">L</span> while <span class="m-label m-dim">⌘</span> + <span class="m-label m-dim">M</span> produces a Markdown link.</p> + </div> + <div id="search-notfound" class="m-text m-warning m-text-center">Sorry, nothing was found.</div> + <ul id="search-results"></ul> + </div> + </div> + </div> + </div> +</div> +<script src="search-v2.js"></script> +<script> + Search.download(window.location.pathname.substr(0, window.location.pathname.lastIndexOf('/') + 1) + 'searchdata-v2.bin'); +</script> +<footer><nav> + <div class="m-container"> + <div class="m-row"> + <div class="m-col-l-10 m-push-l-1"> + <p>The Minish Cap Docs. Created with <a href="https://doxygen.org/">Doxygen</a> 1.9.1 and <a href="https://mcss.mosra.cz/">m.css</a>.</p> + </div> + </div> + </div> +</nav></footer> +</body> +</html> |
