Merge pull request #136 from AnonymousRandomPerson/main

Decomped more AI functions
This commit is contained in:
AnonymousRandomPerson
2025-06-03 00:18:24 -04:00
committed by GitHub
15 changed files with 12215 additions and 12179 deletions

View File

@@ -1,10 +1,4 @@
#pragma once
.public _020AFC4C
.public _020B0A5C
.public _s32_div_f
.public abs
.public BAG_ITEMS_PTR_MIRROR
.public CleanStickyItemsInBag
.public ClearWindow
.public ClosePortraitBox
.public CloseTextBox
@@ -12,198 +6,52 @@
.public CreateInventoryMenu
.public CreatePortraitBox
.public CreateTextBox
.public Debug_GetDebugFlag
.public Debug_Print0
.public DecompressAtFromMemoryPointerVeneer
.public DecompressAtNormalVeneer
.public DeleteWanTableEntryVeneer
.public DeleteWindow
.public DirectoryFileMngr_GetDirectoryFileSize
.public DirectoryFileMngr_OpenDirectoryFile
.public DoesNotSaveWhenEntering
.public DoMoveAbsorb
.public DoMoveAttract
.public DoMoveBeatUp
.public DoMoveBlastBurn
.public DoMoveBlazeKick
.public DoMoveBlock
.public DoMoveBlowback
.public DoMoveBrickBreak
.public DoMoveBrine
.public DoMoveCaptivate
.public DoMoveChargeBeam
.public DoMoveCharm
.public DoMoveCloseCombat
.public DoMoveConfuse
.public DoMoveCopycat
.public DoMoveCrunch
.public DoMoveCrushClaw
.public DoMoveCurse
.public DoMoveDamage__02325DC0
.public DoMoveDamage__0232A500
.public DoMoveDamage__0232B8B0
.public DoMoveDamage__0232DD88
.public DoMoveDamageBoostAllStats
.public DoMoveDamageBurn10FlameWheel
.public DoMoveDamageConfuse10
.public DoMoveDamageConfuse30
.public DoMoveDamageConstrict10
.public DoMoveDamageCringe10
.public DoMoveDamageCringe20
.public DoMoveDamageCringe30
.public DoMoveDamageDrain
.public DoMoveDamageEatItem
.public DoMoveDamageFreeze15
.public DoMoveDamageHpDependent
.public DoMoveDamageInlined
.public DoMoveDamageLowerAccuracy40
.public DoMoveDamageLowerSpecialDefense50
.public DoMoveDamageLowerSpeed100
.public DoMoveDamageLowerSpeed20
.public DoMoveDamageMultihitFatigue
.public DoMoveDamageParalyze10
.public DoMoveDamageParalyze20
.public DoMoveDamagePoison18
.public DoMoveDamagePoison40
.public DoMoveDamageStealItem
.public DoMoveDamageWeightDependent
.public DoMoveDamageWithRecoil
.public DoMoveDefog
.public DoMoveDestinyBond
.public DoMoveDoubleEdge
.public DoMoveDragonRage
.public DoMoveDreamEater
.public DoMoveDynamicPunch
.public DoMoveEarthquake
.public DoMoveEmbargo
.public DoMoveEncore
.public DoMoveEndeavor
.public DoMoveEruption
.public DoMoveFacade
.public DoMoveFakeOut
.public DoMoveFakeTears
.public DoMoveFeatherDance
.public DoMoveFeint
.public DoMoveFireFang
.public DoMoveFissure
.public DoMoveFlareBlitz
.public DoMoveFlatter
.public DoMoveFrustration
.public DoMoveGastroAcid
.public DoMoveGuardSwap
.public DoMoveGust
.public DoMoveGyroBall
.public DoMoveHammerArm
.public DoMoveHeadbutt
.public DoMoveHeadSmash
.public DoMoveHeartSwap
.public DoMoveHiddenPower
.public DoMoveHornDrill
.public DoMoveHurl
.public DoMoveIceFang
.public DoMoveIronTail
.public DoMoveKnockOff
.public DoMoveLastResort
.public DoMoveLeechSeed
.public DoMoveLowerAccuracy1
.public DoMoveLowerDefense1
.public DoMoveLowerSpeed1
.public DoMoveMagnitude
.public DoMoveMetalSound
.public DoMoveMiracleEye
.public DoMoveMistBall
.public DoMoveMudSlap
.public DoMoveNaturalGift
.public DoMoveNightmare
.public DoMoveOhko
.public DoMovePainSplit
.public DoMoveParalyze__02326E80
.public DoMoveParalyze__02328230
.public DoMoveParalyze__0232B434
.public DoMovePause
.public DoMovePayDay
.public DoMovePoison
.public DoMovePoisonFang
.public DoMovePoisonTail
.public DoMovePowerSwap
.public DoMovePresent
.public DoMovePsychoShift
.public DoMoveRapidSpin
.public DoMoveReturn
.public DoMoveReversal
.public DoMoveRolePlay
.public DoMoveSacredFire
.public DoMoveSecretPower
.public DoMoveSeismicToss
.public DoMoveSkillSwap
.public DoMoveSmellingSalt
.public DoMoveSmokescreen
.public DoMoveSpite
.public DoMoveSuperFang
.public DoMoveSuperpower
.public DoMoveSwagger
.public DoMoveSwapItems
.public DoMoveTaunt
.public DoMoveThunderFang
.public DoMoveThundershock
.public DoMoveThunderWave
.public DoMoveTickle
.public DoMoveTorment
.public DoMoveToxic
.public DoMoveTriAttack
.public DoMoveTripleKick
.public DoMoveTrumpCard
.public DoMoveTwineedle
.public DoMoveTwister
.public DoMoveWakeUpSlap
.public DoMoveWhirlpool
.public DoMoveWillOWisp
.public DoMoveWrap
.public DoMoveYawn
.public DrawTextInWindow
.public EFFECT_ANIMATION_INFO
.public ExplorersOfSkyMain
.public GendersEqual
.public GetBgRegionArea
.public GetBodySize
.public GetCurrentBagCapacity
.public GetDungeonGroup
.public GetDungeonMode
.public GetDungeonModeSpecial
.public GetGameMode
.public GetItemAtIdx
.public GetMoneyCarried
.public GetMonsterGenderVeneer
.public GetNbFloors
.public GetNbFloorsDungeonGroup
.public GetNbPrecedingFloors
.public GetWindowContents
.public GroundMainLoop
.public HandleSir0Translation
.public HidePortraitBox
.public IncrementNbFriendRescues
.public ITEM_ANIMATION_INFO
.public InitAnimationControlWithSet__0201C0B0
.public InitEventFlagScriptVars
.public InitPortraitParams
.public InitPortraitParamsWithMonsterId
.public InitPreprocessorArgs
.public InitRender3dElement64
.public IsLosableItem
.public IsNoLossPenaltyDungeon
.public ITEM_ANIMATION_INFO
.public ItemZInit
.public LoadFileFromRom
.public LoadOverlay
.public LoadScriptVariableValue
.public LoadWanTableEntryFromPack
.public LoadWteFromFileDirectory
.public MemAlloc
.public Memcpy32
.public MemFree
.public MemsetSimple
.public MemZero
.public MOVE_ANIMATION_INFO
.public MemAlloc
.public MemFree
.public MemZero
.public Memcpy32
.public MultiplyByFixedPoint
.public PreprocessString
.public Rand16Bit
.public SPECIAL_MONSTER_MOVE_ANIMATION_INFO
.public SetAndPlayAnimationForAnimationControl
.public SetAnimationForAnimationControl
.public SetPortraitEmotion
.public SetPortraitLayout
.public SetPortraitOffset
.public SetSpriteIdForAnimationControl
.public ShowPortraitInPortraitBox
.public StartFadeDungeonWrapper
.public SwitchAnimationControlToNextFrame
.public TEAM_MEMBER_TABLE_PTR
.public TRAP_ANIMATION_INFO
.public UpdateWindow
.public WAN_TABLE
.public _020AFC4C
.public _s32_div_f
.public abs
.public ov10_022C43A4
.public ov10_022C43B0
.public ov10_022C43C0
@@ -241,14 +89,6 @@
.public ov10_022DC058
.public ov10_022DC06C
.public ov10_022DC080
.public ov10_022DC094
.public ov10_022DC0B8
.public ov10_022DC0D4
.public ov10_022DC0F0
.public ov10_022DC0FC
.public ov10_022DC114
.public ov10_022DC130
.public ov10_022DC190
.public ov10_022DC1C0
.public ov10_022DC1C4
.public ov10_022DC1C8
@@ -256,9 +96,7 @@
.public ov10_022DC1D0
.public ov10_022DC1D4
.public ov10_022DC214
.public ov10_022DC218
.public ov10_022DC220
.public ov10_022DC224
.public ov10_022DD718_JP
.public ov10_022DD71C_JP
.public ov11_023061CC
@@ -268,36 +106,14 @@
.public ov29_022EA428
.public ov29_0234C584
.public ov29_0234C5EC
.public PreprocessString
.public ProcessWte
.public Rand16Bit
.public RandInt
.public RemoveEmptyItemsInBag
.public RemoveHolderForItemInBag
.public RunDungeonMode
.public SaveScriptVariableValue
.public SetAndPlayAnimationForAnimationControl
.public SetAnimationForAnimationControl
.public SetMoneyCarried
.public SetPortraitEmotion
.public SetPortraitLayout
.public SetPortraitOffset
.public SetSpriteIdForAnimationControl
.public ShowPortraitInPortraitBox
.public SPECIAL_MONSTER_MOVE_ANIMATION_INFO
.public StartFadeDungeonWrapper
.public strcmp
.public strcpy
.public sub_02001808
.public sub_02001AB0
.public sub_0200A504
.public sub_0200A590
.public sub_0200B330
.public sub_0200B3FC
.public sub_0200C4CC
.public sub_0200D310
.public sub_02017A68
.public sub_02017ACC
.public sub_02017C80
.public sub_0201B43C
.public sub_0201C108
@@ -314,8 +130,6 @@
.public sub_0201DA20
.public sub_0201DBB8
.public sub_0201E184
.public sub_0201E774
.public sub_0201F2A0
.public sub_0201F598
.public sub_02025010_EU
.public sub_020263C8
@@ -341,22 +155,6 @@
.public sub_020333FC
.public sub_02033414
.public sub_02033F30
.public sub_02048BFC
.public sub_02048C0C
.public sub_02048CB8
.public sub_0204AFD0
.public sub_0204E1E4
.public sub_0204E6FC
.public sub_0204E760
.public sub_0204E770
.public sub_0204E790
.public sub_0204E7B8
.public sub_0204E8EC
.public sub_0204F050
.public sub_0204F1B4
.public sub_0204F1F0
.public sub_0204F244
.public sub_0204F55C
.public sub_02051DFC
.public sub_02051ED4
.public sub_02051FB4
@@ -365,15 +163,6 @@
.public sub_020534BC
.public sub_02055CCC
.public sub_020562B8
.public sub_02057CE8
.public sub_020582E0
.public sub_020587C8
.public sub_0205B77C
.public sub_0205B7C8
.public sub_0205BA70
.public sub_0205BBFC
.public sub_0205BC94
.public sub_0205F504
.public sub_0206395C
.public sub_020639B4
.public sub_020639E8
@@ -390,12 +179,4 @@
.public sub_020640DC
.public sub_0206423C
.public sub_020642A8
.public SwitchAnimationControlToNextFrame
.public TEAM_MEMBER_TABLE_PTR
.public TRAP_ANIMATION_INFO
.public UnloadFile
.public UnloadOverlay
.public UnloadWte
.public UpdateWindow
.public vsprintf
.public WAN_TABLE

View File

@@ -0,0 +1,229 @@
#pragma once
.public BAG_ITEMS_PTR_MIRROR
.public CleanStickyItemsInBag
.public Debug_GetDebugFlag
.public Debug_Print0
.public DecompressAtFromMemoryPointerVeneer
.public DecompressAtNormalVeneer
.public DirectoryFileMngr_OpenDirectoryFile
.public DoMoveAbsorb
.public DoMoveAttract
.public DoMoveBeatUp
.public DoMoveBlastBurn
.public DoMoveBlazeKick
.public DoMoveBlock
.public DoMoveBlowback
.public DoMoveBrickBreak
.public DoMoveBrine
.public DoMoveCaptivate
.public DoMoveChargeBeam
.public DoMoveCharm
.public DoMoveCloseCombat
.public DoMoveConfuse
.public DoMoveCopycat
.public DoMoveCrunch
.public DoMoveCrushClaw
.public DoMoveCurse
.public DoMoveDamageBoostAllStats
.public DoMoveDamageBurn10FlameWheel
.public DoMoveDamageConfuse10
.public DoMoveDamageConfuse30
.public DoMoveDamageConstrict10
.public DoMoveDamageCringe10
.public DoMoveDamageCringe20
.public DoMoveDamageCringe30
.public DoMoveDamageDrain
.public DoMoveDamageEatItem
.public DoMoveDamageFreeze15
.public DoMoveDamageHpDependent
.public DoMoveDamageInlined
.public DoMoveDamageLowerAccuracy40
.public DoMoveDamageLowerSpecialDefense50
.public DoMoveDamageLowerSpeed100
.public DoMoveDamageLowerSpeed20
.public DoMoveDamageMultihitFatigue
.public DoMoveDamageParalyze10
.public DoMoveDamageParalyze20
.public DoMoveDamagePoison18
.public DoMoveDamagePoison40
.public DoMoveDamageStealItem
.public DoMoveDamageWeightDependent
.public DoMoveDamageWithRecoil
.public DoMoveDamage__02325DC0
.public DoMoveDamage__0232A500
.public DoMoveDamage__0232B8B0
.public DoMoveDamage__0232DD88
.public DoMoveDefog
.public DoMoveDestinyBond
.public DoMoveDoubleEdge
.public DoMoveDragonRage
.public DoMoveDreamEater
.public DoMoveDynamicPunch
.public DoMoveEarthquake
.public DoMoveEmbargo
.public DoMoveEncore
.public DoMoveEndeavor
.public DoMoveEruption
.public DoMoveFacade
.public DoMoveFakeOut
.public DoMoveFakeTears
.public DoMoveFeatherDance
.public DoMoveFeint
.public DoMoveFireFang
.public DoMoveFissure
.public DoMoveFlareBlitz
.public DoMoveFlatter
.public DoMoveFrustration
.public DoMoveGastroAcid
.public DoMoveGuardSwap
.public DoMoveGust
.public DoMoveGyroBall
.public DoMoveHammerArm
.public DoMoveHeadSmash
.public DoMoveHeadbutt
.public DoMoveHeartSwap
.public DoMoveHiddenPower
.public DoMoveHornDrill
.public DoMoveHurl
.public DoMoveIceFang
.public DoMoveIronTail
.public DoMoveKnockOff
.public DoMoveLastResort
.public DoMoveLeechSeed
.public DoMoveLowerAccuracy1
.public DoMoveLowerDefense1
.public DoMoveLowerSpeed1
.public DoMoveMagnitude
.public DoMoveMetalSound
.public DoMoveMiracleEye
.public DoMoveMistBall
.public DoMoveMudSlap
.public DoMoveNaturalGift
.public DoMoveNightmare
.public DoMoveOhko
.public DoMovePainSplit
.public DoMoveParalyze__02326E80
.public DoMoveParalyze__02328230
.public DoMoveParalyze__0232B434
.public DoMovePause
.public DoMovePayDay
.public DoMovePoison
.public DoMovePoisonFang
.public DoMovePoisonTail
.public DoMovePowerSwap
.public DoMovePresent
.public DoMovePsychoShift
.public DoMoveRapidSpin
.public DoMoveReturn
.public DoMoveReversal
.public DoMoveRolePlay
.public DoMoveSacredFire
.public DoMoveSecretPower
.public DoMoveSeismicToss
.public DoMoveSkillSwap
.public DoMoveSmellingSalt
.public DoMoveSmokescreen
.public DoMoveSpite
.public DoMoveSuperFang
.public DoMoveSuperpower
.public DoMoveSwagger
.public DoMoveSwapItems
.public DoMoveTaunt
.public DoMoveThunderFang
.public DoMoveThunderWave
.public DoMoveThundershock
.public DoMoveTickle
.public DoMoveTorment
.public DoMoveToxic
.public DoMoveTriAttack
.public DoMoveTripleKick
.public DoMoveTrumpCard
.public DoMoveTwineedle
.public DoMoveTwister
.public DoMoveWakeUpSlap
.public DoMoveWhirlpool
.public DoMoveWillOWisp
.public DoMoveWrap
.public DoMoveYawn
.public DoesNotSaveWhenEntering
.public ExplorersOfSkyMain
.public GetDungeonGroup
.public GetDungeonMode
.public GetDungeonModeSpecial
.public GetGameMode
.public GetMoneyCarried
.public GetNbFloors
.public GetNbFloorsDungeonGroup
.public GetNbPrecedingFloors
.public GroundMainLoop
.public HandleSir0Translation
.public IncrementNbFriendRescues
.public InitEventFlagScriptVars
.public InitRender3dElement64
.public IsBackgroundTileset
.public IsLosableItem
.public IsNoLossPenaltyDungeon
.public ItemZInit
.public LoadFileFromRom
.public LoadOverlay
.public LoadScriptVariableValue
.public LoadWteFromFileDirectory
.public MemAlloc
.public MemFree
.public MemZero
.public MemsetSimple
.public MultiplyByFixedPoint
.public ProcessWte
.public RandInt
.public RemoveEmptyItemsInBag
.public RemoveHolderForItemInBag
.public RunDungeonMode
.public SaveScriptVariableValue
.public SetMoneyCarried
.public TEAM_MEMBER_TABLE_PTR
.public UnloadFile
.public UnloadOverlay
.public UnloadWte
.public UpdateInventoryMenu
.public _020B0A5C
.public ov10_022DC094
.public ov10_022DC0B8
.public ov10_022DC0D4
.public ov10_022DC0F0
.public ov10_022DC0FC
.public ov10_022DC114
.public ov10_022DC130
.public ov10_022DC190
.public ov10_022DC218
.public ov10_022DC224
.public sub_02001AB0
.public sub_0200C4CC
.public sub_02017A68
.public sub_02017ACC
.public sub_0201E774
.public sub_0201F2A0
.public sub_02048BFC
.public sub_02048C0C
.public sub_02048CB8
.public sub_0204AFD0
.public sub_0204E1E4
.public sub_0204E6FC
.public sub_0204E760
.public sub_0204E770
.public sub_0204E790
.public sub_0204E7B8
.public sub_0204E8EC
.public sub_0204F050
.public sub_0204F1B4
.public sub_0204F1F0
.public sub_0204F244
.public sub_0204F55C
.public sub_02057CE8
.public sub_020582E0
.public sub_020587C8
.public sub_0205B77C
.public sub_0205B7C8
.public sub_0205BA70
.public sub_0205BBFC
.public sub_0205BC94
.public sub_0205F504

View File

@@ -1,44 +1,4 @@
#pragma once
.public Debug_Print0
.public DEFAULT_TILE
.public DetermineMonsterShadow
.public DIRECTIONS_XY
.public DrawMinimapTile
.public DUNGEON_PTR
.public EntityIsValid__02337CA8
.public GetBgRegionArea
.public GetLeader
.public GetTile
.public GetVisibilityRange
.public InitTilesetBuffer
.public IsBackgroundTileset
.public IsCurrentFixedRoomBossFight
.public IsGoldenChamber
.public IsSecretBazaar
.public ov10_022C2588
.public ov10_022C25EC
.public ov10_022C2638
.public ov10_022C2654
.public ov10_022C26A0
.public ov10_022C2720
.public ov29_022DE0EC
.public ov29_022E0378
.public ov29_022E2930
.public ov29_022E66C4
.public ov29_022E9F80
.public ov29_022FF958
.public ov29_02352B60
.public ov29_02352B74
.public ov29_02352B88
.public ov29_02352B9C
.public ov29_02352D58
.public ov29_02352F14
.public MOBILITY_TYPE_TO_DUNGEON_MOBILITY_TYPE
.public ov29_0237CAA0
.public ov29_0237CAAC
.public ov29_0237CAB8
.public RandIntSafe
.public SECONDARY_TERRAIN_TYPES
.public sub_0204AED0
.public sub_02051D8C
.public sub_02051E60

View File

@@ -0,0 +1,43 @@
#pragma once
.public DEFAULT_TILE
.public DIRECTIONS_XY
.public DUNGEON_PTR
.public Debug_Print0
.public DetermineMonsterShadow
.public DrawMinimapTile
.public EntityIsValid__02337CA8
.public GetBgRegionArea
.public GetLeader
.public GetTile
.public GetTileSafe
.public GetVisibilityRange
.public InitTilesetBuffer
.public IsCurrentFixedRoomBossFight
.public IsGoldenChamber
.public IsSecretBazaar
.public MOBILITY_TYPE_TO_DUNGEON_MOBILITY_TYPE
.public RandIntSafe
.public SECONDARY_TERRAIN_TYPES
.public ov10_022C2588
.public ov10_022C25EC
.public ov10_022C2638
.public ov10_022C2654
.public ov10_022C26A0
.public ov10_022C2720
.public ov29_022DE0EC
.public ov29_022E0378
.public ov29_022E2930
.public ov29_022E66C4
.public ov29_022E9F80
.public ov29_022FF958
.public ov29_02352B60
.public ov29_02352B74
.public ov29_02352B88
.public ov29_02352B9C
.public ov29_02352D58
.public ov29_02352F14
.public ov29_0237CAA0
.public ov29_0237CAAC
.public sub_0204AED0
.public sub_02051D8C
.public sub_02051E60

File diff suppressed because it is too large Load Diff

9832
asm/overlay_10_022C2588.s Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

2042
asm/overlay_29_02336224.s Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,10 @@
#ifndef PMDSKY_OVERLAY_10_022C2574_H
#define PMDSKY_OVERLAY_10_022C2574_H
#include "util.h"
// Given a tileset ID, returns whether it's a background or a regular tileset
// In particular, returns r0 >= 170
bool8 IsBackgroundTileset(s32 tileset_id);
#endif //PMDSKY_OVERLAY_10_022C2574_H

10
include/run_dungeon.h Normal file
View File

@@ -0,0 +1,10 @@
#ifndef PMDSKY_RUN_DUNGEON_H
#define PMDSKY_RUN_DUNGEON_H
#include "util.h"
// Calls IsBackgroundTileset with the current tileset ID
// return: True if the current dungeon tileset is a background, false if it's a regular tileset.
bool8 IsCurrentTilesetBackground();
#endif //PMDSKY_RUN_DUNGEON_H

View File

@@ -145,6 +145,8 @@ Overlay OVY_10
Object asm/overlay_10.o
Object src/overlay_10_022BCC60.o
Object asm/overlay_10_022BCC7C.o
Object src/overlay_10_022C2574.o
Object asm/overlay_10_022C2588.o
}
Overlay OVY_11
{
@@ -447,6 +449,8 @@ Overlay OVY_29
Object asm/overlay_29_023350FC.o
Object src/dungeon_map_access.o
Object asm/overlay_29_02336164.o
Object src/run_dungeon.o
Object asm/overlay_29_02336224.o
Object src/overlay_29_02337CA8.o
Object asm/overlay_29_02337CCC.o
Object src/overlay_29_02338390.o

View File

@@ -5,11 +5,10 @@
#include "dungeon_util.h"
#include "dungeon_util_static.h"
#include "overlay_29_022FF898.h"
#include "run_dungeon.h"
static const u8 DIRECTIONAL_BIT_MASKS[] = {0x1, 0x2, 0x4, 0x8, 0x10, 0x20, 0x40, 0x80};
extern bool8 IsCurrentTilesetBackground(void);
bool8 CanMonsterMoveInDirection(struct entity *monster, u16 direction)
{
struct monster *monster_info = GetEntInfo(monster);
@@ -31,6 +30,8 @@ bool8 CanMonsterMoveInDirection(struct entity *monster, u16 direction)
else if (ItemIsActive__022FF898(monster, ITEM_MOBILE_SCARF))
mobility = MOBILITY_INTANGIBLE;
else if (IqSkillIsEnabled(monster, IQ_ALL_TERRAIN_HIKER))
// BUG: If a Pokémon can normally move through walls, All-Terrain Hiker will block them from moving through walls.
// This bug is fixed in the NA/EU versions.
mobility = MOBILITY_HOVERING;
else if (IqSkillIsEnabled(monster, IQ_ABSOLUTE_MOVER)) {
if (direction & 1)

View File

@@ -21,8 +21,8 @@ enum mobility_type GetMobilityTypeCheckSlip(s16 species, bool8 walk_on_water)
// Indices 4 and 5 in this array are assigned either MOBILITY_NORMAL or MOBILITY_WATER
// depending on whether the dungeon's liquid is water or lava.
// For example, a lava dungeon would have these values:
// WALKABLE_TILE_TO_MOBILITY_TYPE[MOBILITY_LAVA]: MOBILITY_WATER
// WALKABLE_TILE_TO_MOBILITY_TYPE[MOBILITY_WATER]: MOBILITY_NORMAL
// MOBILITY_TYPE_TO_DUNGEON_MOBILITY_TYPE[MOBILITY_LAVA]: MOBILITY_WATER
// MOBILITY_TYPE_TO_DUNGEON_MOBILITY_TYPE[MOBILITY_WATER]: MOBILITY_NORMAL
// This means a Fire-type can cross the dungeon's liquid, while a Water-type cannot.
return MOBILITY_TYPE_TO_DUNGEON_MOBILITY_TYPE[mobility_type];

View File

@@ -0,0 +1,6 @@
#include "overlay_10_022C2574.h"
bool8 IsBackgroundTileset(s32 tileset_id)
{
return tileset_id >= 170;
}

10
src/run_dungeon.c Normal file
View File

@@ -0,0 +1,10 @@
#include "run_dungeon.h"
#include "dungeon.h"
#include "overlay_10_022C2574.h"
extern struct dungeon *DUNGEON_PTR[];
bool8 IsCurrentTilesetBackground()
{
return IsBackgroundTileset(DUNGEON_PTR[0]->gen_info.tileset_id);
}