mirror of
https://github.com/zeldaret/oot
synced 2026-07-27 23:00:01 -04:00
SURFACETYPE0/1 getter macros
This commit is contained in:
+85
-3
@@ -87,11 +87,93 @@ typedef struct {
|
||||
// 0x0000_00FF = BgCam Index
|
||||
} WaterBox; // size = 0x10
|
||||
|
||||
// SurfaceType.data[0]
|
||||
|
||||
#define SURFACETYPE0_BGCAMINDEX_SHIFT 0
|
||||
#define SURFACETYPE0_BGCAMINDEX_MASK 0x000000FF
|
||||
#define SURFACETYPE0_BGCAMINDEX(data0) \
|
||||
(((data0) >> SURFACETYPE0_BGCAMINDEX_SHIFT) & (SURFACETYPE0_BGCAMINDEX_MASK >> SURFACETYPE0_BGCAMINDEX_SHIFT))
|
||||
|
||||
#define SURFACETYPE0_SCENEEXITINDEX_SHIFT 8
|
||||
#define SURFACETYPE0_SCENEEXITINDEX_MASK 0x00001F00
|
||||
#define SURFACETYPE0_SCENEEXITINDEX(data0) \
|
||||
(((data0) >> SURFACETYPE0_SCENEEXITINDEX_SHIFT) & \
|
||||
(SURFACETYPE0_SCENEEXITINDEX_MASK >> SURFACETYPE0_SCENEEXITINDEX_SHIFT))
|
||||
|
||||
#define SURFACETYPE0_13_SHIFT 13
|
||||
#define SURFACETYPE0_13_MASK 0x0003E000
|
||||
#define SURFACETYPE0_13(data0) (((data0) >> SURFACETYPE0_13_SHIFT) & (SURFACETYPE0_13_MASK >> SURFACETYPE0_13_SHIFT))
|
||||
|
||||
#define SURFACETYPE0_18_SHIFT 18
|
||||
#define SURFACETYPE0_18_MASK 0x001C0000
|
||||
#define SURFACETYPE0_18(data0) (((data0) >> SURFACETYPE0_18_SHIFT) & (SURFACETYPE0_18_MASK >> SURFACETYPE0_18_SHIFT))
|
||||
|
||||
#define SURFACETYPE0_21_SHIFT 21
|
||||
#define SURFACETYPE0_21_MASK 0x03E00000
|
||||
#define SURFACETYPE0_21(data0) (((data0) >> SURFACETYPE0_21_SHIFT) & (SURFACETYPE0_21_MASK >> SURFACETYPE0_21_SHIFT))
|
||||
|
||||
#define SURFACETYPE0_FLOORPROPERTY_SHIFT 26
|
||||
#define SURFACETYPE0_FLOORPROPERTY_MASK 0x3C000000
|
||||
#define SURFACETYPE0_FLOORPROPERTY(data0) \
|
||||
(((data0) >> SURFACETYPE0_FLOORPROPERTY_SHIFT) & \
|
||||
(SURFACETYPE0_FLOORPROPERTY_MASK >> SURFACETYPE0_FLOORPROPERTY_SHIFT))
|
||||
|
||||
#define SURFACETYPE0_30_SHIFT 30
|
||||
#define SURFACETYPE0_30_MASK 0x40000000
|
||||
#define SURFACETYPE0_30(data0) (((data0) >> SURFACETYPE0_30_SHIFT) & (SURFACETYPE0_30_MASK >> SURFACETYPE0_30_SHIFT))
|
||||
|
||||
#define SURFACETYPE0_ISHORSEBLOCKED_SHIFT 31
|
||||
#define SURFACETYPE0_ISHORSEBLOCKED_MASK 0x80000000
|
||||
#define SURFACETYPE0_ISHORSEBLOCKED(data0) \
|
||||
(((data0) >> SURFACETYPE0_ISHORSEBLOCKED_SHIFT) & \
|
||||
(SURFACETYPE0_ISHORSEBLOCKED_MASK >> SURFACETYPE0_ISHORSEBLOCKED_SHIFT))
|
||||
|
||||
// SurfaceType.data[1]
|
||||
|
||||
#define SURFACETYPE1_0_SHIFT 0
|
||||
#define SURFACETYPE1_0_MASK 0x0000000F
|
||||
#define SURFACETYPE1_0(data1) (((data1) >> SURFACETYPE1_0_SHIFT) & (SURFACETYPE1_0_MASK >> SURFACETYPE1_0_SHIFT))
|
||||
|
||||
#define SURFACETYPE1_SLOPE_SHIFT 4
|
||||
#define SURFACETYPE1_SLOPE_MASK 0x00000030
|
||||
#define SURFACETYPE1_SLOPE(data1) \
|
||||
(((data1) >> SURFACETYPE1_SLOPE_SHIFT) & (SURFACETYPE1_SLOPE_MASK >> SURFACETYPE1_SLOPE_SHIFT))
|
||||
|
||||
#define SURFACETYPE1_LIGHTSETTINGINDEX_SHIFT 6
|
||||
#define SURFACETYPE1_LIGHTSETTINGINDEX_MASK 0x000007C0
|
||||
#define SURFACETYPE1_LIGHTSETTINGINDEX(data1) \
|
||||
(((data1) >> SURFACETYPE1_LIGHTSETTINGINDEX_SHIFT) & \
|
||||
(SURFACETYPE1_LIGHTSETTINGINDEX_MASK >> SURFACETYPE1_LIGHTSETTINGINDEX_SHIFT))
|
||||
|
||||
#define SURFACETYPE1_ECHO_SHIFT 11
|
||||
#define SURFACETYPE1_ECHO_MASK 0x0001F800
|
||||
#define SURFACETYPE1_ECHO(data1) \
|
||||
(((data1) >> SURFACETYPE1_ECHO_SHIFT) & (SURFACETYPE1_ECHO_MASK >> SURFACETYPE1_ECHO_SHIFT))
|
||||
|
||||
#define SURFACETYPE1_ISHOOKSHOTSURFACE_SHIFT 17
|
||||
#define SURFACETYPE1_ISHOOKSHOTSURFACE_MASK 0x00020000
|
||||
#define SURFACETYPE1_ISHOOKSHOTSURFACE(data1) \
|
||||
(((data1) >> SURFACETYPE1_ISHOOKSHOTSURFACE_SHIFT) & \
|
||||
(SURFACETYPE1_ISHOOKSHOTSURFACE_MASK >> SURFACETYPE1_ISHOOKSHOTSURFACE_SHIFT))
|
||||
|
||||
#define SURFACETYPE1_CONVEYORSPEED_SHIFT 18
|
||||
#define SURFACETYPE1_CONVEYORSPEED_MASK 0x001C0000
|
||||
#define SURFACETYPE1_CONVEYORSPEED(data1) \
|
||||
(((data1) >> SURFACETYPE1_CONVEYORSPEED_SHIFT) & \
|
||||
(SURFACETYPE1_CONVEYORSPEED_MASK >> SURFACETYPE1_CONVEYORSPEED_SHIFT))
|
||||
|
||||
#define SURFACETYPE1_CONVEYORDIRECTION_SHIFT 21
|
||||
#define SURFACETYPE1_CONVEYORDIRECTION_MASK 0x07E00000
|
||||
#define SURFACETYPE1_CONVEYORDIRECTION(data1) \
|
||||
(((data1) >> SURFACETYPE1_CONVEYORDIRECTION_SHIFT) & \
|
||||
(SURFACETYPE1_CONVEYORDIRECTION_MASK >> SURFACETYPE1_CONVEYORDIRECTION_SHIFT))
|
||||
|
||||
#define SURFACETYPE1_WALLDAMAGE_SHIFT 27
|
||||
#define SURFACETYPE1_WALLDAMAGE_FLAG (1 << SURFACETYPE1_WALLDAMAGE_SHIFT)
|
||||
#define SURFACETYPE1_WALLDAMAGE(data1) ((data1) & SURFACETYPE1_WALLDAMAGE_FLAG ? true : false)
|
||||
|
||||
typedef struct {
|
||||
u32 data[2];
|
||||
|
||||
// Type 1
|
||||
// 0x0800_0000 = wall damage
|
||||
} SurfaceType;
|
||||
|
||||
typedef struct {
|
||||
|
||||
Reference in New Issue
Block a user