Document metatile behaviors

This commit is contained in:
GriffinR
2022-08-05 15:24:15 -04:00
parent 40cbfc0722
commit 1640f8b835
10 changed files with 243 additions and 243 deletions
+1
View File
@@ -56,3 +56,4 @@ types_*.taghl
_Deparsed_XSubs.pm
porymap.project.cfg
.vscode/*.*
*.js
+27 -12
View File
@@ -1,33 +1,41 @@
#ifndef GUARD_METATILE_BEHAVIORS
#define GUARD_METATILE_BEHAVIORS
#define METATILE_COUNT 0xF0
#define MB_NORMAL 0x00
#define MB_01 0x01
#define MB_UNUSED_01 0x01
#define MB_TALL_GRASS 0x02
//
#define MB_CAVE 0x08
//
#define MB_RUNNING_DISALLOWED 0x0A
#define MB_0B 0x0B
#define MB_0C 0x0C
#define MB_INDOOR_ENCOUNTER 0x0B
#define MB_MOUNTAIN_TOP 0x0C
//
#define MB_POND_WATER 0x10
#define MB_SEMI_DEEP_WATER 0x11
#define MB_DEEP_WATER 0x12
#define MB_WATERFALL 0x13
//
#define MB_OCEAN_WATER 0x15
#define MB_PUDDLE 0x16
#define MB_SHALLOW_WATER 0x17
//
#define MB_UNDERWATER_BLOCKED_ABOVE 0x19
#define MB_1A 0x1A
#define MB_1B 0x1B
#define MB_UNUSED_WATER 0x1A
#define MB_CELADON_WATER 0x1B
//
#define MB_STRENGTH_BUTTON 0x20
#define MB_SAND 0x21
#define MB_SEAWEED 0x22
#define MB_ICE 0x23
//
#define MB_THIN_ICE 0x26
#define MB_CRACKED_ICE 0x27
#define MB_HOT_SPRINGS 0x28
//
#define MB_ROCK_STAIRS 0x2A
#define MB_SAND_CAVE 0x2B
//
#define MB_IMPASSABLE_EAST 0x30
#define MB_IMPASSABLE_WEST 0x31
#define MB_IMPASSABLE_NORTH 0x32
@@ -40,8 +48,7 @@
#define MB_JUMP_WEST 0x39
#define MB_JUMP_NORTH 0x3A
#define MB_JUMP_SOUTH 0x3B
#define MB_JUMP_SOUTHEAST 0x3E
#define MB_JUMP_SOUTHWEST 0x3F
//
#define MB_WALK_EAST 0x40
#define MB_WALK_WEST 0x41
#define MB_WALK_NORTH 0x42
@@ -50,7 +57,8 @@
#define MB_SLIDE_WEST 0x45
#define MB_SLIDE_NORTH 0x46
#define MB_SLIDE_SOUTH 0x47
#define MB_UNKNOWN_MOVEMENT_48 0x48
#define MB_TRICK_HOUSE_PUZZLE_8_FLOOR 0x48
//
#define MB_EASTWARD_CURRENT 0x50
#define MB_WESTWARD_CURRENT 0x51
#define MB_NORTHWARD_CURRENT 0x52
@@ -60,6 +68,7 @@
#define MB_SPIN_UP 0x56
#define MB_SPIN_DOWN 0x57
#define MB_STOP_SPINNING 0x58
//
#define MB_CAVE_DOOR 0x60
#define MB_LADDER 0x61
#define MB_EAST_ARROW_WARP 0x62
@@ -76,7 +85,9 @@
#define MB_UP_LEFT_STAIR_WARP 0x6D
#define MB_DOWN_RIGHT_STAIR_WARP 0x6E
#define MB_DOWN_LEFT_STAIR_WARP 0x6F
//
#define MB_UNION_ROOM_WARP 0x71
//
#define MB_COUNTER 0x80
#define MB_BOOKSHELF 0x81
#define MB_POKEMART_SHELF 0x82
@@ -90,12 +101,12 @@
#define MB_KITCHEN 0x8A
#define MB_DRESSER 0x8B
#define MB_SNACKS 0x8C
#define MB_8D 0x8D
#define MB_CABLE_CLUB_WIRELESS_MONITOR 0x8D
#define MB_BATTLE_RECORDS 0x8E
#define MB_QUESTIONNAIRE 0x8F
#define MB_FOOD 0x90
#define MB_INDIGO_PLATEAU_MARK_DPAD 0x91
#define MB_INDIGO_PLATEAU_MARK_2_DPAD 0x92
#define MB_INDIGO_PLATEAU_SIGN_1 0x91
#define MB_INDIGO_PLATEAU_SIGN_2 0x92
#define MB_BLUEPRINTS 0x93
#define MB_PAINTING 0x94
#define MB_POWER_PLANT_MACHINE 0x95
@@ -106,13 +117,17 @@
#define MB_TRASH_BIN 0x9A
#define MB_CUP 0x9B
#define MB_PORTHOLE 0x9C
#define MB_WINDOW 0x9D
#define MB_BLINKING_LIGHTS 0x9E
#define MB_NEATLY_LINED_UP_TOOLS 0x9F
#define MB_IMPRESSIVE_MACHINE 0xA0
#define MB_VIDEO_GAME 0xA1
#define MB_BURGLARY 0xA2
#define MB_TRAINER_TOWER_MONITOR 0xA3
//
#define MB_CYCLING_ROAD_PULL_DOWN 0xD0
#define MB_CYCLING_ROAD_PULL_DOWN_GRASS 0xD1
//
#define NUM_METATILE_BEHAVIORS 0xF0
#endif // GUARD_METATILE_BEHAVIORS
+13 -29
View File
@@ -31,10 +31,9 @@ bool8 MetatileBehavior_IsEastArrowWarp(u8 metatileBehavior);
bool8 MetatileBehavior_IsWestArrowWarp(u8 metatileBehavior);
bool8 MetatileBehavior_IsNorthArrowWarp(u8 metatileBehavior);
bool8 MetatileBehavior_IsSouthArrowWarp(u8 metatileBehavior);
bool8 MetatileBehavior_UnusedIsArrowWarp(u8 metatileBehavior);
bool8 MetatileBehavior_IsForcedMovementTile(u8 metatileBehavior);
bool8 MetatileBehavior_IsIce_2(u8 metatileBehavior);
bool8 MetatileBehavior_IsUnknownMovement48(u8 metatileBehavior);
bool8 MetatileBehavior_IsTrickHouseSlipperyFloor(u8 metatileBehavior);
bool8 MetatileBehavior_IsWalkNorth(u8 metatileBehavior);
bool8 MetatileBehavior_IsWalkSouth(u8 metatileBehavior);
bool8 MetatileBehavior_IsWalkWest(u8 metatileBehavior);
@@ -48,18 +47,16 @@ bool8 MetatileBehavior_IsSlideSouth(u8 metatileBehavior);
bool8 MetatileBehavior_IsSlideWest(u8 metatileBehavior);
bool8 MetatileBehavior_IsSlideEast(u8 metatileBehavior);
bool8 MetatileBehavior_IsCounter(u8 metatileBehavior);
bool8 MetatileBehavior_IsPlayerFacingTVScreen(u8 tile, u8 playerDirection);
bool8 MetatileBehavior_IsPlayerFacingTVScreen(u8 metatileBehavior, u8 playerDirection);
bool8 MetatileBehavior_IsPC(u8 metatileBehavior);
bool8 MetatileBehavior_HasRipples(u8 metatileBehavior);
bool8 MetatileBehavior_IsPuddle(u8 metatileBehavior);
bool8 MetatileBehavior_IsTallGrass_2(u8 metatileBehavior);
bool8 MetatileBehavior_IsTallGrass(u8 metatileBehavior);
bool8 MetatileBehavior_IsLongGrass(u8 metatileBehavior);
bool8 MetatileBehavior_ReturnFalse_4(u8 metatileBehavior);
bool8 MetatileBehavior_IsAshGrass(u8 metatileBehavior);
bool8 MetatileBehavior_IsFootprints(u8 metatileBehavior);
bool8 MetatileBehavior_IsBridge(u8 metatileBehavior);
bool8 MetatileBehavior_GetBridgeType(u8 metatileBehavior);
bool8 MetatileBehavior_UnusedIsMB_01(u8 metatileBehavior);
bool8 MetatileBehavior_UnusedIsTallGrass(u8 metatileBehavior);
bool8 MetatileBehavior_IsIndoorEncounter(u8 metatileBehavior);
bool8 MetatileBehavior_IsMountain(u8 metatileBehavior);
bool8 MetatileBehavior_IsDiveable(u8 metatileBehavior);
@@ -68,7 +65,6 @@ bool8 MetatileBehavior_IsShallowFlowingWater(u8 metatileBehavior);
bool8 MetatileBehavior_IsThinIce(u8 metatileBehavior);
bool8 MetatileBehavior_IsCrackedIce(u8 metatileBehavior);
bool8 MetatileBehavior_IsDeepSemiDeepOrSplashingWater(u8 metatileBehavior);
bool8 MetatileBehavior_IsMB1A(u8 metatileBehavior);
bool8 MetatileBehavior_IsSurfableAndNotWaterfall(u8 metatileBehavior);
bool8 MetatileBehavior_IsEastBlocked(u8 metatileBehavior);
bool8 MetatileBehavior_IsWestBlocked(u8 metatileBehavior);
@@ -78,24 +74,15 @@ bool8 MetatileBehavior_IsShortGrass(u8 metatileBehavior);
bool8 MetatileBehavior_IsHotSprings(u8 metatileBehavior);
bool8 MetatileBehavior_IsWaterfall(u8 metatileBehavior);
bool8 MetatileBehavior_IsFortreeBridge(u8 metatileBehavior);
bool8 MetatileBehavior_UnusedReturnFalse(u8 metatileBehavior);
bool8 MetatileBehavior_UnusedReturnFalse_2(u8 metatileBehavior);
bool8 MetatileBehavior_UnusedReturnFalse_3(u8 metatileBehavior);
bool8 MetatileBehavior_UnusedReturnFalse_4(u8 metatileBehavior);
bool8 MetatileBehavior_IsPacifidlogLog(u8 metatileBehavior);
bool8 MetatileBehavior_ReturnFalse_11(u8 metatileBehavior);
bool8 MetatileBehavior_IsRegionMap(u8 metatileBehavior);
bool8 MetatileBehavior_UnusedReturnFalse_5(u8 metatileBehavior);
bool8 MetatileBehavior_UnusedReturnFalse_6(u8 metatileBehavior);
bool8 MetatileBehavior_UnusedReturnFalse_7(u8 metatileBehavior);
bool8 MetatileBehavior_UnusedReturnFalse_8(u8 metatileBehavior);
bool8 MetatileBehavior_IsLavaridgeB1FWarp(u8 metatileBehavior);
bool8 MetatileBehavior_IsLavaridge1FWarp(u8 metatileBehavior);
bool8 MetatileBehavior_IsWarpPad(u8 metatileBehavior);
bool8 MetatileBehavior_IsUnionRoomWarp(u8 metatileBehavior);
bool8 MetatileBehavior_IsWater(u8 metatileBehavior);
bool8 MetatileBehavior_IsFallWarp(u8 metatileBehavior);
bool8 MetatileBehavior_ReturnFalse_13(u8 metatileBehavior);
bool8 MetatileBehavior_IsCrackedFloor(u8 metatileBehavior);
bool32 MetatileBehavior_IsCyclingRoadPullDownTile(u8 metatileBehavior);
bool8 MetatileBehavior_IsCyclingRoadPullDownTileGrass(u8 metatileBehavior);
bool8 MetatileBehavior_IsBumpySlope(u8 metatileBehavior);
@@ -105,15 +92,10 @@ bool8 MetatileBehavior_IsVerticalRail(u8 metatileBehavior);
bool8 MetatileBehavior_IsHorizontalRail(u8 metatileBehavior);
bool8 MetatileBehavior_IsSeaweed(u8 metatileBehavior);
bool8 MetatileBehavior_IsRunningDisallowed(u8 metatileBehavior);
bool8 MetatileBehavior_UnusedReturnFalse_9(u8 metatileBehavior);
bool8 MetatileBehavior_IsBookshelf(u8 metatileBehavior);
bool8 MetatileBehavior_IsPokeMartShelf(u8 metatileBehavior);
bool8 MetatileBehavior_IsPlayerFacingPokemonCenterSign(u8 tile, u8 playerDirection);
bool8 MetatileBehavior_IsPlayerFacingPokeMartSign(u8 tile, u8 playerDirection);
bool8 MetatileBehavior_UnusedReturnFalse_10(u8 metatileBehavior);
bool8 MetatileBehavior_UnusedReturnFalse_11(u8 metatileBehavior);
bool8 MetatileBehavior_UnusedReturnFalse_12(u8 metatileBehavior);
bool8 MetatileBehavior_UnusedReturnFalse_13(u8 metatileBehavior);
bool8 MetatileBehavior_IsPlayerFacingPokemonCenterSign(u8 metatileBehavior, u8 playerDirection);
bool8 MetatileBehavior_IsPlayerFacingPokeMartSign(u8 metatileBehavior, u8 playerDirection);
bool8 TestMetatileAttributeBit(u8 attr, u8 bitmask);
bool8 MetatileBehavior_IsSpinRight(u8 metatileBehavior);
bool8 MetatileBehavior_IsSpinLeft(u8 metatileBehavior);
@@ -127,11 +109,11 @@ bool8 MetatileBehavior_IsKitchen(u8 metatileBehavior);
bool8 MetatileBehavior_IsDresser(u8 metatileBehavior);
bool8 MetatileBehavior_IsSnacks(u8 metatileBehavior);
bool8 MetatileBehavior_IsStrengthButton(u8 metatileBehavior);
bool8 MetatileBehavior_IsPlayerFacingCableClubWirelessMonitor(u8 tile, u8 playerDirection);
bool8 MetatileBehavior_IsPlayerFacingBattleRecords(u8 tile, u8 playerDirection);
bool8 MetatileBehavior_IsPlayerFacingCableClubWirelessMonitor(u8 metatileBehavior, u8 playerDirection);
bool8 MetatileBehavior_IsPlayerFacingBattleRecords(u8 metatileBehavior, u8 playerDirection);
bool8 MetatileBehavior_IsQuestionnaire(u8 metatileBehavior);
bool8 MetatileBehavior_IsIndigoPlateauMark(u8 metatileBehavior);
bool8 MetatileBehavior_IsIndigoPlateauMark2(u8 metatileBehavior);
bool8 MetatileBehavior_IsIndigoPlateauSign1(u8 metatileBehavior);
bool8 MetatileBehavior_IsIndigoPlateauSign2(u8 metatileBehavior);
bool8 MetatileBehavior_IsFood(u8 metatileBehavior);
bool8 MetatileBehavior_IsRockStairs(u8 metatileBehavior);
bool8 MetatileBehavior_IsBlueprints(u8 metatileBehavior);
@@ -151,5 +133,7 @@ bool8 MetatileBehavior_IsImpressiveMachine(u8 metatileBehavior);
bool8 MetatileBehavior_IsVideoGame(u8 metatileBehavior);
bool8 MetatileBehavior_IsBurglary(u8 metatileBehavior);
bool8 MetatileBehavior_IsTrainerTowerMonitor(u8 metatileBehavior);
bool8 MetatileBehavior_IsSecretBaseJumpMat(u8 metatileBehavior);
bool8 MetatileBehavior_IsSecretBaseSpinMat(u8 metatileBehavior);
#endif // GUARD_METATILE_BEHAVIOR
+1 -1
View File
@@ -460,7 +460,7 @@ u8 BattleSetup_GetTerrainId(void)
PlayerGetDestCoords(&x, &y);
tileBehavior = MapGridGetMetatileBehaviorAt(x, y);
if (MetatileBehavior_IsTallGrass_2(tileBehavior))
if (MetatileBehavior_IsTallGrass(tileBehavior))
return BATTLE_TERRAIN_GRASS;
if (MetatileBehavior_IsLongGrass(tileBehavior))
return BATTLE_TERRAIN_LONG_GRASS;
+4 -4
View File
@@ -5148,7 +5148,7 @@ void sub_8063E28(struct ObjectEvent *objectEvent, struct Sprite *sprite)
}
if (MetatileBehavior_IsIce_2(objectEvent->currentMetatileBehavior) == TRUE
|| MetatileBehavior_IsUnknownMovement48(objectEvent->currentMetatileBehavior) == TRUE)
|| MetatileBehavior_IsTrickHouseSlipperyFloor(objectEvent->currentMetatileBehavior) == TRUE)
objectEvent->disableAnim = TRUE;
else
objectEvent->disableAnim = FALSE;
@@ -8095,13 +8095,13 @@ static void GetGroundEffectFlags_Reflection(struct ObjectEvent *objEvent, u32 *f
static void GetGroundEffectFlags_TallGrassOnSpawn(struct ObjectEvent *objEvent, u32 *flags)
{
if (MetatileBehavior_IsTallGrass_2(objEvent->currentMetatileBehavior))
if (MetatileBehavior_IsTallGrass(objEvent->currentMetatileBehavior))
*flags |= GROUND_EFFECT_FLAG_TALL_GRASS_ON_SPAWN;
}
static void GetGroundEffectFlags_TallGrassOnBeginStep(struct ObjectEvent *objEvent, u32 *flags)
{
if (MetatileBehavior_IsTallGrass_2(objEvent->currentMetatileBehavior))
if (MetatileBehavior_IsTallGrass(objEvent->currentMetatileBehavior))
*flags |= GROUND_EFFECT_FLAG_TALL_GRASS_ON_MOVE;
}
@@ -8230,7 +8230,7 @@ static void GetGroundEffectFlags_JumpLanding(struct ObjectEvent *objEvent, u32 *
typedef bool8 (*MetatileFunc)(u8);
static const MetatileFunc metatileFuncs[] = {
MetatileBehavior_IsTallGrass_2,
MetatileBehavior_IsTallGrass,
MetatileBehavior_IsLongGrass,
MetatileBehavior_IsPuddle,
MetatileBehavior_IsSurfable,
+4 -4
View File
@@ -575,12 +575,12 @@ static const u8 *GetInteractedMetatileScript(struct MapPosition *position, u8 me
return EventScript_Questionnaire;
if (MetatileBehavior_IsPlayerFacingBattleRecords(metatileBehavior, direction) == TRUE)
return CableClub_EventScript_ShowBattleRecords;
if (MetatileBehavior_IsIndigoPlateauMark(metatileBehavior) == TRUE)
if (MetatileBehavior_IsIndigoPlateauSign1(metatileBehavior) == TRUE)
{
MsgSetSignPost();
return EventScript_Indigo_UltimateGoal;
}
if (MetatileBehavior_IsIndigoPlateauMark2(metatileBehavior) == TRUE)
if (MetatileBehavior_IsIndigoPlateauSign2(metatileBehavior) == TRUE)
{
MsgSetSignPost();
return EventScript_Indigo_HighestAuthority;
@@ -792,10 +792,10 @@ static u8 GetFacingSignpostType(u16 metatileBehavior, u8 playerDirection)
if (MetatileBehavior_IsPlayerFacingPokeMartSign(metatileBehavior, playerDirection) == TRUE)
return SIGNPOST_POKEMART;
if (MetatileBehavior_IsIndigoPlateauMark(metatileBehavior) == TRUE)
if (MetatileBehavior_IsIndigoPlateauSign1(metatileBehavior) == TRUE)
return SIGNPOST_INDIGO_1;
if (MetatileBehavior_IsIndigoPlateauMark2(metatileBehavior) == TRUE)
if (MetatileBehavior_IsIndigoPlateauSign2(metatileBehavior) == TRUE)
return SIGNPOST_INDIGO_2;
if (MetatileBehavior_IsSignpost(metatileBehavior) == TRUE)
+1 -1
View File
@@ -316,7 +316,7 @@ void UpdateTallGrassFieldEffect(struct Sprite *sprite)
mapNum = sprite->data[3];
mapGroup = sprite->data[4];
metatileBehavior = MapGridGetMetatileBehaviorAt(sprite->data[1], sprite->data[2]);
if (TryGetObjectEventIdByLocalIdAndMap(localId, mapNum, mapGroup, &objectEventId) || !MetatileBehavior_IsTallGrass_2(metatileBehavior) || (sprite->data[7] && sprite->animEnded))
if (TryGetObjectEventIdByLocalIdAndMap(localId, mapNum, mapGroup, &objectEventId) || !MetatileBehavior_IsTallGrass(metatileBehavior) || (sprite->data[7] && sprite->animEnded))
{
FieldEffectStop(sprite, FLDEFF_TALL_GRASS);
}
+7 -7
View File
@@ -58,8 +58,8 @@ static bool8 ForcedMovement_SlideSouth(void);
static bool8 ForcedMovement_SlideNorth(void);
static bool8 ForcedMovement_SlideWest(void);
static bool8 ForcedMovement_SlideEast(void);
static bool8 ForcedMovement_0xBB(void);
static bool8 ForcedMovement_0xBC(void);
static bool8 ForcedMovement_MatJump(void);
static bool8 ForcedMovement_MatSpin(void);
static u8 CheckMovementInputNotOnBike(u8 direction);
static void PlayerNotOnBikeNotMoving(u8 direction, u16 heldKeys);
static void PlayerNotOnBikeTurningInPlace(u8 direction, u16 heldKeys);
@@ -225,7 +225,7 @@ static const struct {
bool8 (*check)(u8 metatileBehavior);
bool8 (*apply)(void);
} sForcedMovementFuncs[] = {
{MetatileBehavior_IsUnknownMovement48, ForcedMovement_Slip},
{MetatileBehavior_IsTrickHouseSlipperyFloor, ForcedMovement_Slip},
{MetatileBehavior_IsIce_2, ForcedMovement_Slip},
{MetatileBehavior_IsWalkSouth, ForcedMovement_WalkSouth},
{MetatileBehavior_IsWalkNorth, ForcedMovement_WalkNorth},
@@ -244,8 +244,8 @@ static const struct {
{MetatileBehavior_IsSlideWest, ForcedMovement_SlideWest},
{MetatileBehavior_IsSlideEast, ForcedMovement_SlideEast},
{MetatileBehavior_IsWaterfall, ForcedMovement_PushedSouthByCurrent},
{MetatileBehavior_UnusedReturnFalse_7, ForcedMovement_0xBB},
{MetatileBehavior_UnusedReturnFalse_8, ForcedMovement_0xBC},
{MetatileBehavior_IsSecretBaseJumpMat, ForcedMovement_MatJump},
{MetatileBehavior_IsSecretBaseSpinMat, ForcedMovement_MatSpin},
{NULL, ForcedMovement_None},
};
@@ -430,13 +430,13 @@ static bool8 ForcedMovement_SlideEast(void)
return ForcedMovement_Slide(DIR_EAST, PlayerGoSpeed2);
}
static bool8 ForcedMovement_0xBB(void)
static bool8 ForcedMovement_MatJump(void)
{
DoPlayerMatJump();
return TRUE;
}
static bool8 ForcedMovement_0xBC(void)
static bool8 ForcedMovement_MatSpin(void)
{
DoPlayerMatSpin();
return TRUE;
+2 -2
View File
@@ -233,7 +233,7 @@ static void AshGrassPerStepCallback(u8 taskId)
{
data[1] = x;
data[2] = y;
if (MetatileBehavior_ReturnFalse_4((u8)MapGridGetMetatileBehaviorAt(x, y)))
if (MetatileBehavior_IsAshGrass((u8)MapGridGetMetatileBehaviorAt(x, y)))
{
if (MapGridGetMetatileIdAt(x, y) == 0x20a)
StartAshFieldEffect(x, y, 0x212, 4);
@@ -267,7 +267,7 @@ static void CrackedFloorPerStepCallback(u8 taskId)
{
data[2] = x;
data[3] = y;
if (MetatileBehavior_ReturnFalse_13(behavior))
if (MetatileBehavior_IsCrackedFloor(behavior))
{
if (GetPlayerSpeed() != 4)
VarSet(VAR_ICE_STEP_COUNT, 0);
+183 -183
View File
File diff suppressed because it is too large Load Diff