Decomped IsTileGround()

This commit is contained in:
AnonymousRandomPerson 2022-02-20 23:43:06 -05:00
parent ec6abc684e
commit 4aafa434a6
7 changed files with 15180 additions and 15120 deletions

File diff suppressed because it is too large Load Diff

15059
asm/code_804AF74.s Normal file

File diff suppressed because it is too large Load Diff

View File

@ -92,25 +92,3 @@ gBlastBurnIQReq: @ 810ACBC
.global gVoltTackleIQReq
gVoltTackleIQReq: @ 810ACBE
.2byte 333
.global gDungeonWaterType
gDungeonWaterType: @ 810ACC0
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x02, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x02
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x01, 0x00
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x01
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x01, 0x00
.byte 0x00, 0x00, 0x00, 0x00

13
include/tile_types.h Normal file
View File

@ -0,0 +1,13 @@
#ifndef GUARD_TILE_TYPES_H
#define GUARD_TILE_TYPES_H
#include "map.h"
#define DUNGEON_WATER_TYPE_NONE 0
#define DUNGEON_WATER_TYPE_LAVA 1
#define DUNGEON_WATER_TYPE_WATER 2
// 0x4AF20
bool8 IsTileGround(struct MapTile* tile);
#endif

View File

@ -201,6 +201,8 @@ SECTIONS {
src/dungeon_ai_item_weight.o(.text);
src/dungeon_map_access.o(.text);
asm/code_80495E4.o(.text);
src/tile_types.o(.text);
asm/code_804AF74.o(.text);
src/code_80521D0.o(.text);
asm/code_80521D0.o(.text);
src/charge_move.o(.text);
@ -423,6 +425,7 @@ SECTIONS {
data/data_8107010.o(.rodata);
src/friend_area.o(.rodata);
data/data_810AC60.o(.rodata);
src/tile_types.o(.rodata);
src/exclusive_pokemon.o(.rodata);
src/rescue_team_info.o(.rodata);
src/text_util.o(.rodata);

View File

@ -13,6 +13,7 @@
#include "map.h"
#include "number_util.h"
#include "status_checks_1.h"
#include "tile_types.h"
#include "weather.h"
// Array indices correspond to the current dungeon tileset.
@ -95,7 +96,6 @@ const u8 gDungeonCamouflageTypes[76] = {
TYPE_ROCK
};
extern bool8 IsTileGround(struct MapTile*);
extern bool8 CanLayTrap(struct Position*);
bool8 CanUseOnSelfWithStatusChecker(struct DungeonEntity *pokemon, struct PokemonMove *move)

103
src/tile_types.c Normal file
View File

@ -0,0 +1,103 @@
#include "global.h"
#include "tile_types.h"
#include "dungeon_global_data.h"
const u8 gDungeonWaterType[] = {
DUNGEON_WATER_TYPE_NONE,
DUNGEON_WATER_TYPE_NONE,
DUNGEON_WATER_TYPE_NONE,
DUNGEON_WATER_TYPE_NONE,
DUNGEON_WATER_TYPE_NONE,
DUNGEON_WATER_TYPE_NONE,
DUNGEON_WATER_TYPE_NONE,
DUNGEON_WATER_TYPE_NONE,
DUNGEON_WATER_TYPE_NONE,
DUNGEON_WATER_TYPE_WATER,
DUNGEON_WATER_TYPE_NONE,
DUNGEON_WATER_TYPE_NONE,
DUNGEON_WATER_TYPE_NONE,
DUNGEON_WATER_TYPE_NONE,
DUNGEON_WATER_TYPE_NONE,
DUNGEON_WATER_TYPE_NONE,
DUNGEON_WATER_TYPE_NONE,
DUNGEON_WATER_TYPE_NONE,
DUNGEON_WATER_TYPE_NONE,
DUNGEON_WATER_TYPE_NONE,
DUNGEON_WATER_TYPE_NONE,
DUNGEON_WATER_TYPE_NONE,
DUNGEON_WATER_TYPE_NONE,
DUNGEON_WATER_TYPE_NONE,
DUNGEON_WATER_TYPE_NONE,
DUNGEON_WATER_TYPE_NONE,
DUNGEON_WATER_TYPE_NONE,
DUNGEON_WATER_TYPE_NONE,
DUNGEON_WATER_TYPE_NONE,
DUNGEON_WATER_TYPE_NONE,
DUNGEON_WATER_TYPE_NONE,
DUNGEON_WATER_TYPE_NONE,
DUNGEON_WATER_TYPE_NONE,
DUNGEON_WATER_TYPE_NONE,
DUNGEON_WATER_TYPE_NONE,
DUNGEON_WATER_TYPE_WATER,
DUNGEON_WATER_TYPE_NONE,
DUNGEON_WATER_TYPE_NONE,
DUNGEON_WATER_TYPE_NONE,
DUNGEON_WATER_TYPE_NONE,
DUNGEON_WATER_TYPE_NONE,
DUNGEON_WATER_TYPE_NONE,
DUNGEON_WATER_TYPE_NONE,
DUNGEON_WATER_TYPE_NONE,
DUNGEON_WATER_TYPE_NONE,
DUNGEON_WATER_TYPE_NONE,
DUNGEON_WATER_TYPE_LAVA,
DUNGEON_WATER_TYPE_NONE,
DUNGEON_WATER_TYPE_LAVA,
DUNGEON_WATER_TYPE_NONE,
DUNGEON_WATER_TYPE_NONE,
DUNGEON_WATER_TYPE_NONE,
DUNGEON_WATER_TYPE_NONE,
DUNGEON_WATER_TYPE_NONE,
DUNGEON_WATER_TYPE_NONE,
DUNGEON_WATER_TYPE_NONE,
DUNGEON_WATER_TYPE_NONE,
DUNGEON_WATER_TYPE_NONE,
DUNGEON_WATER_TYPE_NONE,
DUNGEON_WATER_TYPE_LAVA,
DUNGEON_WATER_TYPE_NONE,
DUNGEON_WATER_TYPE_NONE,
DUNGEON_WATER_TYPE_NONE,
DUNGEON_WATER_TYPE_NONE,
DUNGEON_WATER_TYPE_NONE,
DUNGEON_WATER_TYPE_NONE,
DUNGEON_WATER_TYPE_NONE,
DUNGEON_WATER_TYPE_NONE,
DUNGEON_WATER_TYPE_NONE,
DUNGEON_WATER_TYPE_NONE,
DUNGEON_WATER_TYPE_LAVA,
DUNGEON_WATER_TYPE_NONE,
DUNGEON_WATER_TYPE_NONE,
DUNGEON_WATER_TYPE_NONE,
DUNGEON_WATER_TYPE_NONE,
DUNGEON_WATER_TYPE_NONE,
};
extern bool8 IsWaterTileset();
bool8 IsTileGround(struct MapTile* tile)
{
bool8 isGround = FALSE;
if (IsWaterTileset())
{
if (!(tile->tileType & (TILE_TYPE_FLOOR | TILE_TYPE_LIQUID)))
{
isGround = TRUE;
}
}
else if ((tile->tileType & (TILE_TYPE_FLOOR | TILE_TYPE_LIQUID)) != TILE_TYPE_LIQUID ||
gDungeonWaterType[gDungeonGlobalData->tileset] == DUNGEON_WATER_TYPE_LAVA)
{
isGround = TRUE;
}
return isGround;
}