mirror of
https://github.com/zeldaret/oot
synced 2026-07-11 15:18:59 -04:00
Doc, macros, enums for SurfaceType.data (#1293)
* `SURFACETYPE`0/1 getter macros
* Cleanup/assess/revert existing names
* `SURFACETYPE0_30` -> "soft"
* `SURFACETYPE0_`13/26 -> floortype/floorproperty
* Introduce `SURFACETYPE_FLOORTYPE_` enum
* Introduce `SURFACETYPE_FLOORPROPERTY_` enum
* `SURFACETYPE0_21` -> "wall type", and maps to "wall flags"
* Introduce `SURFACETYPE_WALLTYPE_` enum
* Introduce `SURFACETYPE_WALLFLAG_` defines
* `SURFACETYPE1_0` -> "sfx type"
* `SurfaceType_GetSfx` -> `GetSfxId` and cleanup
* Introduce `SURFACETYPE_SFXTYPE_` enum
* Note oddity on `Player.unk_89E` (more docs needed)
* `SURFACETYPE1_4` -> "floor effect" (not 100% set on the name, just something different from type and property)
* Introduce `SURFACETYPE_FLOOREFFECT_` enum
* Introduce `SURFACETYPE_CONVEYORSPEED_` enum
* Add `SURFACETYPE_CONVEYORDIRECTION_TO_BINANG` macro
* `wallDamage` -> `hasFlag27`
* Be more underscore-happy
* Revert "`SURFACETYPE`0/1 getter macros"
This reverts commit e61cccf2e6.
* remove mention to removed define
* Remove surfacetype_ prefix, `SFX_TYPE_` -> `SURFACE_SFX_TYPE_`, `FLOOREFFECT_` -> `FLOOR_EFFECT_`
* Formatting
* 0-pad litteral to 8 nibbles
This commit is contained in:
+14
-14
@@ -634,28 +634,28 @@ u16 BgCheck_GetBgCamSetting(CollisionContext* colCtx, CollisionPoly* poly, s32 b
|
||||
u16 BgCheck_GetBgCamCount(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId);
|
||||
Vec3s* BgCheck_GetBgCamFuncDataImpl(CollisionContext* colCtx, s32 bgCamIndex, s32 bgId);
|
||||
Vec3s* BgCheck_GetBgCamFuncData(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId);
|
||||
u32 SurfaceType_GetSceneExitIndex(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId);
|
||||
u32 func_80041D4C(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId);
|
||||
u32 SurfaceType_GetExitIndex(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId);
|
||||
u32 SurfaceType_GetFloorType(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId);
|
||||
u32 func_80041D70(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId);
|
||||
s32 func_80041DB8(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId);
|
||||
s32 func_80041DE4(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId);
|
||||
s32 func_80041E18(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId);
|
||||
s32 func_80041E4C(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId);
|
||||
u32 func_80041EA4(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId);
|
||||
u32 func_80041EC8(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId);
|
||||
s32 SurfaceType_GetWallFlags(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId);
|
||||
s32 SurfaceType_CheckWallFlag0(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId);
|
||||
s32 SurfaceType_CheckWallFlag1(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId);
|
||||
s32 SurfaceType_CheckWallFlag2(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId);
|
||||
u32 SurfaceType_GetFloorProperty(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId);
|
||||
u32 SurfaceType_IsSoft(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId);
|
||||
u32 SurfaceType_IsHorseBlocked(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId);
|
||||
u32 func_80041F10(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId);
|
||||
u16 SurfaceType_GetSfx(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId);
|
||||
u32 SurfaceType_GetSlope(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId);
|
||||
u32 SurfaceType_GetLightSettingIndex(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId);
|
||||
u32 SurfaceType_GetSfxType(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId);
|
||||
u16 SurfaceType_GetSfxId(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId);
|
||||
u32 SurfaceType_GetFloorEffect(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId);
|
||||
u32 SurfaceType_GetLightSetting(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId);
|
||||
u32 SurfaceType_GetEcho(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId);
|
||||
u32 SurfaceType_IsHookshotSurface(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId);
|
||||
u32 SurfaceType_CanHookshot(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId);
|
||||
s32 SurfaceType_IsIgnoredByEntities(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId);
|
||||
s32 SurfaceType_IsIgnoredByProjectiles(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId);
|
||||
s32 SurfaceType_IsFloorConveyor(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId);
|
||||
u32 SurfaceType_GetConveyorSpeed(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId);
|
||||
u32 SurfaceType_GetConveyorDirection(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId);
|
||||
u32 SurfaceType_IsWallDamage(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId);
|
||||
u32 func_80042108(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId);
|
||||
s32 WaterBox_GetSurface1(PlayState* play, CollisionContext* colCtx, f32 x, f32 z, f32* ySurface,
|
||||
WaterBox** outWaterBox);
|
||||
s32 WaterBox_GetSurface2(PlayState* play, CollisionContext* colCtx, Vec3f* pos, f32 surfaceChkDist,
|
||||
|
||||
+86
-3
@@ -87,11 +87,94 @@ typedef struct {
|
||||
// 0x0000_00FF = BgCam Index
|
||||
} WaterBox; // size = 0x10
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ FLOOR_TYPE_0,
|
||||
/* 1 */ FLOOR_TYPE_1,
|
||||
/* 2 */ FLOOR_TYPE_2,
|
||||
/* 3 */ FLOOR_TYPE_3,
|
||||
/* 4 */ FLOOR_TYPE_4,
|
||||
/* 5 */ FLOOR_TYPE_5,
|
||||
/* 6 */ FLOOR_TYPE_6,
|
||||
/* 7 */ FLOOR_TYPE_7,
|
||||
/* 8 */ FLOOR_TYPE_8,
|
||||
/* 9 */ FLOOR_TYPE_9,
|
||||
/* 10 */ FLOOR_TYPE_10,
|
||||
/* 11 */ FLOOR_TYPE_11,
|
||||
/* 12 */ FLOOR_TYPE_12
|
||||
} FloorType;
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ WALL_TYPE_0,
|
||||
/* 1 */ WALL_TYPE_1,
|
||||
/* 2 */ WALL_TYPE_2,
|
||||
/* 3 */ WALL_TYPE_3,
|
||||
/* 4 */ WALL_TYPE_4,
|
||||
/* 5 */ WALL_TYPE_5,
|
||||
/* 6 */ WALL_TYPE_6,
|
||||
/* 7 */ WALL_TYPE_7,
|
||||
/* 8 */ WALL_TYPE_8,
|
||||
/* 9 */ WALL_TYPE_9,
|
||||
/* 10 */ WALL_TYPE_10,
|
||||
/* 11 */ WALL_TYPE_11,
|
||||
/* 12 */ WALL_TYPE_12,
|
||||
/* 32 */ WALL_TYPE_MAX = 32
|
||||
} WallType;
|
||||
|
||||
#define WALL_FLAG_0 (1 << 0)
|
||||
#define WALL_FLAG_1 (1 << 1)
|
||||
#define WALL_FLAG_2 (1 << 2)
|
||||
#define WALL_FLAG_3 (1 << 3)
|
||||
#define WALL_FLAG_4 (1 << 4)
|
||||
#define WALL_FLAG_5 (1 << 5)
|
||||
#define WALL_FLAG_6 (1 << 6)
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ FLOOR_PROPERTY_0,
|
||||
/* 5 */ FLOOR_PROPERTY_5 = 5,
|
||||
/* 6 */ FLOOR_PROPERTY_6,
|
||||
/* 7 */ FLOOR_PROPERTY_7,
|
||||
/* 8 */ FLOOR_PROPERTY_8,
|
||||
/* 9 */ FLOOR_PROPERTY_9,
|
||||
/* 11 */ FLOOR_PROPERTY_11 = 11,
|
||||
/* 12 */ FLOOR_PROPERTY_12
|
||||
} FloorProperty;
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ SURFACE_SFX_TYPE_0,
|
||||
/* 1 */ SURFACE_SFX_TYPE_1,
|
||||
/* 2 */ SURFACE_SFX_TYPE_2,
|
||||
/* 3 */ SURFACE_SFX_TYPE_3,
|
||||
/* 4 */ SURFACE_SFX_TYPE_4,
|
||||
/* 5 */ SURFACE_SFX_TYPE_5,
|
||||
/* 6 */ SURFACE_SFX_TYPE_6,
|
||||
/* 7 */ SURFACE_SFX_TYPE_7,
|
||||
/* 8 */ SURFACE_SFX_TYPE_8,
|
||||
/* 9 */ SURFACE_SFX_TYPE_9,
|
||||
/* 10 */ SURFACE_SFX_TYPE_10,
|
||||
/* 11 */ SURFACE_SFX_TYPE_11,
|
||||
/* 12 */ SURFACE_SFX_TYPE_12,
|
||||
/* 13 */ SURFACE_SFX_TYPE_13,
|
||||
/* 14 */ SURFACE_SFX_TYPE_MAX
|
||||
} SurfaceSfxType;
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ FLOOR_EFFECT_0,
|
||||
/* 1 */ FLOOR_EFFECT_1,
|
||||
/* 2 */ FLOOR_EFFECT_2
|
||||
} FloorEffect;
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ CONVEYOR_SPEED_DISABLED,
|
||||
/* 1 */ CONVEYOR_SPEED_SLOW,
|
||||
/* 2 */ CONVEYOR_SPEED_MEDIUM,
|
||||
/* 3 */ CONVEYOR_SPEED_FAST,
|
||||
/* 4 */ CONVEYOR_SPEED_MAX
|
||||
} ConveyorSpeed;
|
||||
|
||||
#define CONVEYOR_DIRECTION_TO_BINANG(conveyorDirection) ((conveyorDirection) * (0x10000 / 64))
|
||||
|
||||
typedef struct {
|
||||
u32 data[2];
|
||||
|
||||
// Type 1
|
||||
// 0x0800_0000 = wall damage
|
||||
} SurfaceType;
|
||||
|
||||
typedef struct {
|
||||
|
||||
Reference in New Issue
Block a user